领域在更新多个对象时很慢

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)
    }