解决加载 table 视图时偶尔发生的 Core Data 死锁
Solve a Core Data deadlock that happens occasionally when a table view is being loaded
我正在使用一个非常常见的核心数据栈。
子 Mocs -> Main Moc -> Background Moc -> PSC
我从很长一段时间以来一直面临核心数据死锁,当我点击我的 table 视图的一个单元格以打开另一个 table 视图时,屏幕会冻结,我的table 视图使用 FRC。查看线程,我的所有 3 个托管对象上下文似乎都处于死锁状态。我现在已经尝试多次调试它但无济于事。
线程 1:主要 Moc
线程 8:子 Moc
线程 10:背景 Moc
如有任何帮助,我们将不胜感激。
我认为当同时访问不同的持久存储(在我的例子中是 2 个)时,问题就会发生。第一个持久存储是通过 Background Moc 访问的,同时有一个通过与第二个持久存储相关的 Child Moc 流动的获取请求。
我没有从背景 Moc 发出有问题的第一个提取请求,而是将其移至其中一个子 Moc,并且解决了死锁。
我仍然不知道确切的原因,但我能够得到这个解决方法。
希望对您有所帮助。
我正在使用一个非常常见的核心数据栈。 子 Mocs -> Main Moc -> Background Moc -> PSC
我从很长一段时间以来一直面临核心数据死锁,当我点击我的 table 视图的一个单元格以打开另一个 table 视图时,屏幕会冻结,我的table 视图使用 FRC。查看线程,我的所有 3 个托管对象上下文似乎都处于死锁状态。我现在已经尝试多次调试它但无济于事。
线程 1:主要 Moc
线程 8:子 Moc
线程 10:背景 Moc
如有任何帮助,我们将不胜感激。
我认为当同时访问不同的持久存储(在我的例子中是 2 个)时,问题就会发生。第一个持久存储是通过 Background Moc 访问的,同时有一个通过与第二个持久存储相关的 Child Moc 流动的获取请求。
我没有从背景 Moc 发出有问题的第一个提取请求,而是将其移至其中一个子 Moc,并且解决了死锁。
我仍然不知道确切的原因,但我能够得到这个解决方法。
希望对您有所帮助。