在我对我的问题太深入之前我的目标,可能会影响你的答案,是删除对象数据,如果它不再在云中.
所以如果我有一个数组[“一”,“二”,“三”]
然后在我的服务器我删除“两个”
我想要我的境界来更新这个变化.
我认为最好的方法是删除特定对象中的所有数据,然后调用我的REST API来下载新的数据.如果有更好的方法,请让我知道.
好的,这是我的问题.
我有一个对象通知()
每次调用我的REST API之前,下载我运行的任何东西:
let realm = Realm() let notifications = Notifications() realm.beginWrite() realm.delete(notifications) realm.commitWrite()
运行后我得到这个错误:只能从它所属的领域删除一个对象.
所以我试过这样的东西:
for notification in notifications { realm.delete(notification) } realm.commitWrite()
我在xcode中得到的错误是:“类型通知不符合协议”SequenceType“
不太确定从哪里走.
只是想弄清境界.全新的
注意:realm.deleteAll()的工作原理,但我不希望我的所有领域被删除,只是某些对象
你在找:
let realm = Realm() let deletedValue = "two" realm.write { let deletedNotifications = realm.objects(Notifications).filter("value == %@",deletedValue) realm.delete(deletedNotifications) }
或者也许这样
let realm = Realm() let serverValues = ["one","three"] realm.write { realm.delete(realm.objects(Notifications)) // deletes all 'Notifications' objects from the realm for value in serverValues { let notification = Notifications() notification.value = value realm.add(notification) } }
虽然理想情况下,您将在通知中设置主键,以便您可以简单地更新现有对象,而不是采取极端的方法来将所有本地对象简单地重新创建(或几乎).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。