我正在尝试迁移一些代码以使用NSManagedObjectContextwith NSPrivateQueueConcurrencyType.
在将上下文保存到其父级,然后保存父级之后,我有时会遇到非常奇怪的错误.我想知道这些是否是因为没有NSPrivateQueueConcurrencyType正确使用上下文.
我已经-com.apple.CoreData.ConcurrencyDebug 1开始尝试调试这个.我很确定这不起作用.如果我在托管对象上下文上执行操作或在不使用的情况下更改其对象performBlock:,我不会收到错误或抛出.
这是我如何设置方案的参数:
.我也没有领先的尝试过-.
知道我做错了什么吗?
Big*_*ood 11
该参数-com.apple.CoreData.ConcurrencyDebug可从iOS> 8和OSX> 10.10获得:确保您定位到正确的平台.
如果启用了标志,控制台应记录此信息:
CoreData: annotation: Core Data multi-threading assertions enabled.
来源:Ole Begemann的核心数据并发调试
与XCode 8.x和iOS 10.x一起使用时,我想为想要立即实现此目标的任何人提供简化的答案。
您首先需要为您的应用程序修改方案:
打开后,请确保已选择“运行”,然后选择“参数”。您将要复制以下值:
-com.apple.CoreData.ConcurrencyDebug 1-com.apple.CoreData.Logging.stderr 1启动应用程序后,启用这些选项后,您现在应该会看到它出现在控制台中:
CoreData:批注:已启用Core Data多线程断言。
当您遇到由此产生的异常时,您可能会看到以下信息:
CoreData` + [NSManagedObjectContext Multithreading_Violation_AllThatIsLeftToUsIsHonor ]:
您可以返回到方案编辑器并根据需要禁用此日志记录,以防止将来出现异常。
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |