从特定领域对象中删除所有数据 Swift
Delete all data from specific Realm Object Swift
在我深入探讨我的问题之前。我的目标(可能会影响您的答案)是删除 Object
数据(如果它不再在云端)。
所以如果我有一个数组 ["one", "two", "three"]
然后在我的服务器中删除 "two"
我希望我的领域更新更改。
我认为最好的方法是删除特定 Object
中的所有数据,然后调用我的 REST API 下载新数据。如果有更好的方法,请告诉我。
好的,这是我的问题。
我有一个对象Notifications()
每次我的 REST API 被调用时,在它下载任何东西之前我是 运行 这个:
let realm = Realm()
let notifications = Notifications()
realm.beginWrite()
realm.delete(notifications)
realm.commitWrite()
我在 运行 之后收到此错误:Can only delete an object from the Realm it belongs to.
所以我尝试了这样的事情:
for notification in notifications {
realm.delete(notification)
}
realm.commitWrite()
我在 xcode 中得到的错误是这样的:"Type Notifications does not conform to protocol 'SequenceType'
不太确定从这里到哪里去。
只是想弄清楚境界。完全陌生
注意:realm.deleteAll()
有效,但我不想删除我的所有领域,只是某些 Objects
您正在寻找这个:
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)
}
}
虽然理想情况下,您应该在 Notifications
上设置一个主键,这样您就可以简单地更新那些现有对象,而不是采取极端的方法来简单地重新创建所有本地对象(或差不多)。
在我深入探讨我的问题之前。我的目标(可能会影响您的答案)是删除 Object
数据(如果它不再在云端)。
所以如果我有一个数组 ["one", "two", "three"]
然后在我的服务器中删除 "two"
我希望我的领域更新更改。
我认为最好的方法是删除特定 Object
中的所有数据,然后调用我的 REST API 下载新数据。如果有更好的方法,请告诉我。
好的,这是我的问题。
我有一个对象Notifications()
每次我的 REST API 被调用时,在它下载任何东西之前我是 运行 这个:
let realm = Realm()
let notifications = Notifications()
realm.beginWrite()
realm.delete(notifications)
realm.commitWrite()
我在 运行 之后收到此错误:Can only delete an object from the Realm it belongs to.
所以我尝试了这样的事情:
for notification in notifications {
realm.delete(notification)
}
realm.commitWrite()
我在 xcode 中得到的错误是这样的:"Type Notifications does not conform to protocol 'SequenceType'
不太确定从这里到哪里去。
只是想弄清楚境界。完全陌生
注意:realm.deleteAll()
有效,但我不想删除我的所有领域,只是某些 Objects
您正在寻找这个:
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)
}
}
虽然理想情况下,您应该在 Notifications
上设置一个主键,这样您就可以简单地更新那些现有对象,而不是采取极端的方法来简单地重新创建所有本地对象(或差不多)。