我目前有一个带有标签栏的 iPhone 项目。在标签栏上有两个视图。两个视图都将数据加载或保存到 Core Data 数据库(这两个视图都启动了一个从 Web 服务收集数据并将其保存在数据库中的方法)。加载视图时,它会从填充视图中的表的数据库中加载数据。如果我运行应用程序并单击选项卡栏中的第二个视图,则第一个视图仍在从 Web 服务加载数据并将其插入到单独线程上的数据库中。这很好,但是一旦第一个视图完成将所有数据从 web 服务加载到数据库中,只有当第二个视图控制器从数据库加载数据时,它才会冻结两个视图控制器。
控制台没有错误,xcode 也没有指示有任何错误。我所有的进程都在不同的线程上工作,所以主线程冻结没有问题。从 web 服务中提取数据并将其保存到数据库是一种方法,并且在我提出的方法的末尾NSLog(@"View Controller 1 Save Complete")
。一旦调用它并且第二个视图控制器仍在加载数据,它就会冻结。整个应用程序没有响应(没有任何效果)。
我查看了有关其他 SO 问题的信息,它建议我在NSManagedObjectContext
每次提取或插入时声明一个新的,我已经这样做了,但它并没有解决问题。
如果有人知道发生了什么或者您想了解更多信息,请告诉我。
编辑:我正在使用 Xcode 4.5 和 IOS 6 模拟器。这是一周前发布的新IOS的beta版本。我知道这不是错误,因为在我开始使用 beta 版本之前我遇到了这个问题。