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