Alamofire、ObjectMapper、Realm:删除孤立对象
Alamofire, ObjectMapper, Realm: Delete orphaned objects
我使用 Alamofire、ObjectMapper 和 Realm 并将我获取和映射的对象保存在领域中。
是否可以自动删除孤立对象?
例如我获取联系人列表。现在一个联系人已从响应中删除,应该会自动从 Realm 中删除。这是 objectmapper 可以做的事情吗?
我不知道使用 Realm 或 ObjectMapper 'automatically' 的方法,但是您基本上可以通过对 Realm 数据执行 Set.Subtract() 操作来删除孤立对象。但是,这也意味着您必须在您的领域 class.
上遵守 Hashable
协议
实施 Hashable
后,您可以执行以下操作:
var contacts = try! Realm().objects(Contacts)
let realmSet = Set<Contacts>(self.contacts)
let incomingSet = Set<Contacts>(incomingContacts)
let contactsToDeleteSet = realmSet.subtract(incomingSet)
for contact in contactsToDeleteSet {
try! realm.write {
realm.delete(contact)
}
}
您可以在此处查看所有很棒的 Set 操作:Performing Set Operations。
我使用 Alamofire、ObjectMapper 和 Realm 并将我获取和映射的对象保存在领域中。 是否可以自动删除孤立对象?
例如我获取联系人列表。现在一个联系人已从响应中删除,应该会自动从 Realm 中删除。这是 objectmapper 可以做的事情吗?
我不知道使用 Realm 或 ObjectMapper 'automatically' 的方法,但是您基本上可以通过对 Realm 数据执行 Set.Subtract() 操作来删除孤立对象。但是,这也意味着您必须在您的领域 class.
上遵守Hashable
协议
实施 Hashable
后,您可以执行以下操作:
var contacts = try! Realm().objects(Contacts)
let realmSet = Set<Contacts>(self.contacts)
let incomingSet = Set<Contacts>(incomingContacts)
let contactsToDeleteSet = realmSet.subtract(incomingSet)
for contact in contactsToDeleteSet {
try! realm.write {
realm.delete(contact)
}
}
您可以在此处查看所有很棒的 Set 操作:Performing Set Operations。