因为在iOS5上使用CATiledLayer和Core Data而导致崩溃

时间:2011-10-25 14:27:07

标签: iphone core-data catiledlayer

我正在使用CATiledLayer来渲染NSManagedObjects。 但是你知道,CATiledLayer在后台线程中渲染对象。这使我的应用程序在iOS5上崩溃

我知道我应该为每个线程使用单独的NSManagedContext,但这样会使性能变差。 (因为我必须更频繁地保存NSManagedContext以将数据传输到其他线程)。

你们知道解决问题的更好方法吗?请帮忙!!!

抱歉我的英语不好!

1 个答案:

答案 0 :(得分:1)

NSManagedObjectContext不是线程安全的,也不是NSMangedObjects。你应该在后台线程上创建一个MOC,传入任何IDs(ARE线程安全),并在后台线程上下文中加载它们。

更新:

另一种方法是创建普通的旧obj-c对象,甚至只是一个常规的NSDictionay,它包含必要的数据并将它们传递给后台线程。因此,在填充MO后,创建一个POOCO,复制必要的数据,然后将其传递给后台线程进行处理。这样可以避免磁盘访问。