领域重复对象
Realm duplicate Objects
在我的 CoreData 版本中我可以写
let doubledContacts = contacts + contacts
其中联系人的类型为 [NSManagedObject]。在 Realm 中,这会导致崩溃:"Can't mutate a persisted array outside of a write transaction."
我不想保留 doubledContacts,所以我不需要写入事务。我想要的只是一个新集合,其中每个联系人都包含两次。
如何在 Realm 中解决这个问题?
最简单的解决方案是将所有联系人拉到一个数组中:
let contactsArray = contacts.map { [=10=] }
let doubledContacts = contactsArray + contactsArray
但请注意:这将使 List
(或 Results
)的惰性语义失效,并导致您将所有对象实例拉入映射内存。
在我的 CoreData 版本中我可以写
let doubledContacts = contacts + contacts
其中联系人的类型为 [NSManagedObject]。在 Realm 中,这会导致崩溃:"Can't mutate a persisted array outside of a write transaction."
我不想保留 doubledContacts,所以我不需要写入事务。我想要的只是一个新集合,其中每个联系人都包含两次。
如何在 Realm 中解决这个问题?
最简单的解决方案是将所有联系人拉到一个数组中:
let contactsArray = contacts.map { [=10=] }
let doubledContacts = contactsArray + contactsArray
但请注意:这将使 List
(或 Results
)的惰性语义失效,并导致您将所有对象实例拉入映射内存。