Voy*_*ger 11 xcode realm swift
我有从JSON响应中保存列表的Realm对象.但是现在我需要删除该对象,如果该对象不再从JSON列表中列出.我是怎么做到的?这是我的领域
func listItems (dic : Array<[String:AnyObject]>) -> Array<Items> {
let items : NSMutableArray = NSMutableArray()
let realm = try! Realm()
for itemDic in dic {
let item = Items.init(item: itemDic)
try! realm.write {
realm.add(item, update: true)
}
items.addObject(item)
}
return NSArray(items) as! Array<Items>
}
Run Code Online (Sandbox Code Playgroud)
小智 25
想象你的Items
对象有一个id属性,并且你想删除新集合中未包含的旧值,你可以删除所有内容
let result = realm.objects(Items.self)
realm.delete(result)
Run Code Online (Sandbox Code Playgroud)
然后再将所有项目添加到领域,或者您也可以查询新集合中未包含的每个项目
let items = [Items]() // fill in your items values
// then just grab the ids of the items with
let ids = items.map { $0.id }
// query all objects where the id in not included
let objectsToDelete = realm.objects(Items.self).filter("NOT id IN %@", ids)
// and then just remove the set with
realm.delete(objectsToDelete)
Run Code Online (Sandbox Code Playgroud)
func realmDeleteAllClassObjects() {
do {
let realm = try Realm()
let objects = realm.objects(SomeClass.self)
try! realm.write {
realm.delete(objects)
}
} catch let error as NSError {
// handle error
print("error - \(error.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
// 如果要删除一个对象
func realmDelete(code: String) {
do {
let realm = try Realm()
let object = realm.objects(SomeClass.self).filter("code = %@", code).first
try! realm.write {
if let obj = object {
realm.delete(obj)
}
}
} catch let error as NSError {
// handle error
print("error - \(error.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
如果我删除类似最高投票答案的答案,将会出现崩溃错误。
Terminating app due to uncaught exception 'RLMException', reason: 'Can only add, remove, or create objects in a Realm in a write transaction - call beginWriteTransaction on an RLMRealm instance first.'
Run Code Online (Sandbox Code Playgroud)
在写事务中删除:
let items = realm.objects(Items.self)
try! realm!.write {
realm!.delete(items)
}
Run Code Online (Sandbox Code Playgroud)
我想到的第一个建议是在从 JSON 插入新对象之前删除所有对象。
了解有关删除 Realm 中对象的更多信息:https://realm.io/docs/swift/latest/#deleting-objects
归档时间: |
|
查看次数: |
24333 次 |
最近记录: |