0

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

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

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

对不起我的英语不好!

4

1 回答 1

1

NSManagedObjectContext 不是线程安全的,NSManagedObjects 也不是。您应该在后台线程上创建一个 MOC,传入任何ID(这是线程安全的),并将它们加载到后台线程上下文中。

更新:

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

于 2011-10-25T14:29:10.037 回答