我使用 Alamofire、ObjectMapper 和 Realm,并将获取和映射的对象保存在领域中。是否可以自动删除孤立对象?
例如,我获取联系人列表。现在一个联系人已从响应中删除,应该会自动从 Realm 中删除。这是objectmapper可以做的吗?
我使用 Alamofire、ObjectMapper 和 Realm,并将获取和映射的对象保存在领域中。是否可以自动删除孤立对象?
例如,我获取联系人列表。现在一个联系人已从响应中删除,应该会自动从 Realm 中删除。这是objectmapper可以做的吗?
我不知道使用 Realm 或 ObjectMapper“自动”执行此操作的方法,但您基本上可以通过对 Realm 数据执行 Set.Subtract() 操作来删除孤立对象。但是,这也意味着您必须遵守Hashable
Realm 类的协议。
实现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)
}
}
你可以在这里查看所有很棒的集合操作:执行集合操作。