我可以在与Realm的线程中使用被忽略的属性吗?

时间:2015-03-31 01:00:39

标签: ios objective-c multithreading realm

对于线程之间共享的对象(通过持久化和查询),在一个线程中对一个被忽略的属性的更改是否会在另一个线程中可见?

  

要在线程之间共享对象或在应用程序启动之间重新使用它们,您必须将它们保留到Realm ...您对其所做的所有更改都将被保留(并且必须在写入事务中进行)。在提交写入事务时,任何更改都可用于使用相同Realm的其他线程。

http://realm.io/docs/cocoa/0.91.1/#writes

看起来不会适用于忽略的属性。对象的每个线程实例都有自己的被忽略属性的副本,并且一个线程中的更改不会影响任何其他线程。是吗?

1 个答案:

答案 0 :(得分:2)

正确。当您通过重新查询来从另一个线程访问RLMObject时,它将是该对象的新实例,因此忽略的属性将不会与该实例一起携带。

话虽如此,只要您不尝试访问任何Realm支持的属性(否则将触发RLMException),您可以从一个线程传递RLMObject实例到另一个并继续在新线程上访问其被忽略的属性。