0
我有以下情况,我在加载应用程序时获取数据,它是一个ChatUserPersonalConversationModel
模型的数组,我将此数组作为独立模型存储在Realm中。当我得到一个数组时,如果先前的模型不包含在结果数组中,那么执行以下操作的最佳方法是什么?然后从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)
}
}
}