Alamofire,ObjectMapper,Realm:删除孤立对象

net*_*000 2 realm swift alamofire objectmapper

我使用Alamofire,ObjectMapper和Realm并保存我在领域中获取和映射的对象.是否可以自动删除孤立对象?

例如,我获取联系人列表.现在已从响应中删除了一个联系人,应自动从Realm中删除.这是objectmapper可以做的吗?

Att*_*cus 5

我不知道使用Realm或ObjectMapper"自动"执行此操作的方法,但您实际上可以通过对Realm数据执行Set.Subtract()操作来删除孤立对象.但是,这也意味着您必须符合HashableRealm类的协议.

实施后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)
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看所有令人敬畏的Set操作:执行Set Operations.