我正在使用CATiledLayer来渲染NSManagedObjects。 但是你知道,CATiledLayer在后台线程中渲染对象。这使我的应用程序在iOS5上崩溃
我知道我应该为每个线程使用单独的NSManagedContext,但这样会使性能变差。 (因为我必须更频繁地保存NSManagedContext以将数据传输到其他线程)。
你们知道解决问题的更好方法吗?请帮忙!!!
抱歉我的英语不好!
答案 0 :(得分:1)
NSManagedObjectContext不是线程安全的,也不是NSMangedObjects。你应该在后台线程上创建一个MOC,传入任何IDs(ARE线程安全),并在后台线程上下文中加载它们。
更新:
另一种方法是创建普通的旧obj-c对象,甚至只是一个常规的NSDictionay,它包含必要的数据并将它们传递给后台线程。因此,在填充MO后,创建一个POOCO,复制必要的数据,然后将其传递给后台线程进行处理。这样可以避免磁盘访问。