CoreData在首次获取时无限期阻塞?

时间:2012-08-17 19:21:26

标签: ios core-data nsfetchrequest

所以我有一个奇怪的情况。

当我重新安装我的应用程序的开发版本时,我创建了一个CoreData数据库。在我的应用启动序列的其他地方,我尝试了一个简单的NSPredicate - 过滤的提取请求。

通常(不是每次),这个第一次获取无限期地阻塞,并且应用程序需要重新启动才能正常继续。

我似乎无法弄清楚如何处理这个问题,因为我无法可靠地重现这一点,每次我做某事我认为后来发现它没有任何帮助。

对此有何想法?

1 个答案:

答案 0 :(得分:3)

在iOS中使用Core Data的一个好方法是将创建和所有访问放在调度队列之后。因此,您在初始化例程中创建一个串行调度队列,然后通过将块调度到该队列来创建并填充它。显然,您可以异步执行此操作,因为队列是串行的。你也可以这样获取,然后当它成功时,你可以将一些消息发布到主队列,你的app会委托应用程序准备就绪。

当你的应用程序启动,并需要核心数据设置时,设置一些标志,然后阻止用户界面,抛出一个微调器,播放音乐(无论如何),直到你获得该回送。