我知道我可以使用以下代码轻松做到这一点:
realm.delete(realm.objects(Duck.self))
realm.delete(realm.objects(Frog.self))
//...
realm.delete(realm.objects(Cat.self))
但是删除除一种类型对象之外的所有对象的最佳方法是什么?
请注意,我有很多类型,每次添加新类型时,都应该修改deleteAll
方法。
答案 0 :(得分:2)
根据达维德的answer:
func deleteAll(except types: Object.Type...) {
guard let realm = realm else { return }
try? realm.write {
realm.configuration.objectTypes?.filter{ type in types.contains{ $0 == type } == false}.forEach{ objectType in
realm.delete(realm.objects(objectType.self))
}
}
}
用法:
deleteAll(except: Dog.self, Chicken.self)