【发布时间】:2017-06-17 04:44:12
【问题描述】:
我有以下情况,我在加载应用程序时获取数据,它是ChatUserPersonalConversationModel模型的数组,我将这个数组作为单独的模型存储在Realm中。当我得到一个数组并且如果以前的模型不包含在结果数组中时,执行以下操作的最佳方法是什么,那么我将它从 Realm 中删除。
我写了以下代码,它对我有用,但我认为它可以做得更好。
func updateChatUserPersonalConversationModels(_ chatUserPersonalConversationModels: [ChatUserPersonalConversationModel]) {
DispatchQueue.main.async {
do {
let realm = try Realm()
let existChatUserPersonalConversationModels = realm.objects(ChatUserPersonalConversationModel.self)
for existChatUserPersonalConversationModel in existChatUserPersonalConversationModels {
if !chatUserPersonalConversationModels.contains(where: { (newChatUserPersonalConversationModel) -> Bool in
return newChatUserPersonalConversationModel.id == existChatUserPersonalConversationModel.id
}) {
try realm.write {
realm.delete(existChatUserPersonalConversationModel)
}
}
}
try realm.write {
realm.add(chatUserPersonalConversationModels, update: true)
}
} catch {
debugPrint(error.localizedDescription)
}
}
}
【问题讨论】: