gpt4 book ai didi

ios - Realm :更新属性缓慢

转载 作者:行者123 更新时间:2023-11-29 01:31:03 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以在 Collection View 中选择多个联系人。当他选择一个单元格时,相应对象“contact”上的属性“isSelected”将被设置为true,并且collectionview将刷新所选单元格:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let contact: self.filteredContacts[indexPath.row]
self.invertSelectionStatusOfContact(contact)
self.collectionView?.reloadItemsAtIndexPaths([indexPath])
}

func invertSelectionStatusOfContact(contact:Contact){

try! self.realm.write {
contact.isSelected = !contact.isSelected
}
}

有大约 500 毫秒的延迟,当我使用 coredata 时,延迟要快得多。我可以采取什么措施来获得更高的性能吗?

最佳答案

我遇到了类似的问题,毕竟我决定不动态地使用 realm.write(每次用户选择联系人时)。

相反,我决定在我的 ViewController 中保留对我的联系人对象的引用并更改属性 isSelected:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let contact: self.filteredContacts[indexPath.row]
contact.isSelected = !contact.isSelected
self.collectionView?.reloadItemsAtIndexPaths([indexPath])
}

不要忘记在用户即将离开您的 ViewController 时使用 realm.write() 更新您的联系人对象。

整个技巧只用于 realm.write() 一次。试着弄清楚什么时候是这样做的好时机。

编辑我认为您无法提高 Realm 写入事务的性能。这绝对是耗时的,主要是因为文件 I/O。

关于ios - Realm :更新属性缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33452237/

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