所以我有一个奇怪的情况。
当我重新安装我的应用程序的开发版本时,我创建了一个CoreData数据库。在我的应用启动序列的其他地方,我尝试了一个简单的NSPredicate
- 过滤的提取请求。
通常(不是每次),这个第一次获取无限期地阻塞,并且应用程序需要重新启动才能正常继续。
我似乎无法弄清楚如何处理这个问题,因为我无法可靠地重现这一点,每次我做某事我认为后来发现它没有任何帮助。
对此有何想法?
答案 0 :(得分:3)
在iOS中使用Core Data的一个好方法是将创建和所有访问放在调度队列之后。因此,您在初始化例程中创建一个串行调度队列,然后通过将块调度到该队列来创建并填充它。显然,您可以异步执行此操作,因为队列是串行的。你也可以这样获取,然后当它成功时,你可以将一些消息发布到主队列,你的app会委托应用程序准备就绪。
当你的应用程序启动,并需要核心数据设置时,设置一些标志,然后阻止用户界面,抛出一个微调器,播放音乐(无论如何),直到你获得该回送。