领域在更新多个对象时很慢
Realm slow on updating multiple objects
在我的应用中,用户可以在一个集合视图中 select 多个联系人。当他 select 将 属性 "isSelected" 设置为 true 并且集合视图刷新 selected 单元格时。在这里,我可以识别出 selection 和单元格突出显示之间的小延迟。但在下一步中,我创建了一个包含 selected 联系人的组,最后我将 属性 "isSelected" 设置为 false。对于 50 个对象(5 秒),这花费了不可接受的时间,需要进行调整。
这是我取消select 所有 selected 联系人的代码:
for contact in self.selectedContacts {
try! self.realm.write{
contact.isSelected = false;
self.realm.add(contact, update: true)
}
}
是否可以一次执行批量更新?
尝试将 for 循环放在写入块中:
try! self.realm.write {
for contact in self.selectedContacts {
contact.isSelected = false;
self.realm.add(contact, update: true)
}
}
您应该在写块之外添加切换选择逻辑。加快 Realm 更新过程。
for contact in self.selectedContacts {
contact.isSelected = false;
}
try! self.realm.write{
self.realm.add(self.selectedContacts, update: true)
}
在我的应用中,用户可以在一个集合视图中 select 多个联系人。当他 select 将 属性 "isSelected" 设置为 true 并且集合视图刷新 selected 单元格时。在这里,我可以识别出 selection 和单元格突出显示之间的小延迟。但在下一步中,我创建了一个包含 selected 联系人的组,最后我将 属性 "isSelected" 设置为 false。对于 50 个对象(5 秒),这花费了不可接受的时间,需要进行调整。
这是我取消select 所有 selected 联系人的代码:
for contact in self.selectedContacts {
try! self.realm.write{
contact.isSelected = false;
self.realm.add(contact, update: true)
}
}
是否可以一次执行批量更新?
尝试将 for 循环放在写入块中:
try! self.realm.write {
for contact in self.selectedContacts {
contact.isSelected = false;
self.realm.add(contact, update: true)
}
}
您应该在写块之外添加切换选择逻辑。加快 Realm 更新过程。
for contact in self.selectedContacts {
contact.isSelected = false;
}
try! self.realm.write{
self.realm.add(self.selectedContacts, update: true)
}