gpt4 book ai didi

swift - Alamofire,ObjectMapper, Realm : Delete orphaned objects

转载 作者:可可西里 更新时间:2023-11-01 00:37:08 24 4
gpt4 key购买 nike

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

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

最佳答案

我不知道有什么方法可以使用 Realm 或 ObjectMapper 来“自动”执行此操作,但是您基本上可以通过对 Realm 数据执行 Set.Subtract() 操作来删除孤立对象。但是,这也意味着您必须在 Realm 类上遵守 Hashable 协议(protocol)。

一旦你实现了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 .

关于swift - Alamofire,ObjectMapper, Realm : Delete orphaned objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com