iOS5 核心数据获取冻结应用
Posted
技术标签:
【中文标题】iOS5 核心数据获取冻结应用【英文标题】:iOS5 core data fetch freezes the app 【发布时间】:2012-01-19 06:57:55 【问题描述】:从 ios5 开始,我的应用在使用 fetchedResultsController
时开始死机。退出模拟器后我附上了调试器结果。
任何帮助将不胜感激。
谢谢
【问题讨论】:
你使用多少线程?您尝试在哪里获取?粘贴代码。您似乎创建了一个死锁。 我正在使用主表视图和其他三个表视图。当主表视图中的列表选择发生变化时,我正在使用 performselectorinbackground 方法更新三个表视图(基本上我将 fetchedresultscontroller 设为 nil 并在这些方法中再次执行 fetch)。应用程序冻结在 NSInteger totalCount = [managedObjectContext countForFetchRequest:fetchRequest error:&error] 行(在 fetchedresultscontroller 块内)。在 iOS5 之前应用程序运行良好。 【参考方案1】:您在 cmets 中说您正在使用 performSelectorInBackground:
来更新表格视图。这是不对的,所有影响UI的代码都应该在主线程上执行。
此外(我认为这是导致问题的原因)您不能跨线程重用 MOC。每个线程必须有自己的 MOC,然后可以使用相同的NSPersistentStoreCoordinator
。
您应该阅读Apple's guide on this topic。
【讨论】:
以上是关于iOS5 核心数据获取冻结应用的主要内容,如果未能解决你的问题,请参考以下文章