【问题标题】:Alamofire, ObjectMapper, Realm: Delete orphaned objectsAlamofire、ObjectMapper、Realm:删除孤立对象
【发布时间】:2016-02-18 21:03:32
【问题描述】:

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

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

【问题讨论】:

    标签: swift realm alamofire objectmapper


    【解决方案1】:

    我不知道使用 Realm 或 ObjectMapper“自动”执行此操作的方法,但您基本上可以通过对 Realm 数据执行 Set.Subtract() 操作来删除孤立对象。但是,这也意味着您必须在您的 Realm 类上遵守 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

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2016-02-17
      相关资源
      最近更新 更多