【发布时间】:2015-09-09 11:39:24
【问题描述】:
我想在后台线程上获取大量对象,但是我无法将它们传递给主线程,因为我得到了
*** Terminating app due to uncaught exception 'RLMException', reason: 'Realm accessed from incorrect thread'
获取代码
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
//Background Thread
RLMRealm * realm = [RLMRealm defaultRealm];
self.allObjectsRLMResult = [MyClass allObjectsInRealm:realm];
dispatch_async(dispatch_get_main_queue(), ^(void){
// use self.allObjects and do stuff on main thread
});
});
如何在后台执行提取并将对象传递给主线程,从而将性能影响降至最低
我可以获取主键,然后在主线程上重新获取,但这与直接获取它们的性能相同(可能更慢)
【问题讨论】:
标签: ios objective-c multithreading cocoa-touch realm