我正在做一个业余爱好项目,我在业余时间慢慢更新,以帮助学习一些新东西。我遇到的一个绊脚石是在一个单独的线程中使用Core Data。我已经阅读了Apple关于Core Data并发性的文档,我读到的所有内容似乎都很直接,所以我开始更新我的项目以在后台线程上加载数据,因为我不想在加载时锁定UI。
如果在主线程上加载Core Data对象,该项目可以正常工作。如果我切换到后台加载,它会崩溃。
在这个阶段,我可以验证:
当我在NSData上调用类别实现时,会发生实际问题。我可以验证NSData对象在后台线程上加载时是否正常,只有当我调用一个函数在NSData对象加载后对它做一些工作时我才会遇到问题。问题是EXC_BAD_ACCESS,这通常意味着对象的地址是错误的,但它没有任何意义。
我可能只是得到一些明显或简单的错误 - 但我只是看不到森林里的树木。
如果你认为你可以提供任何建议,因为它让我发疯,那么你可以在这里找到代码:
编辑帖子回答:删除了项目不再存在的网址。
答案 0 :(得分:0)
好的,我终于找到了问题所在。解压缩方法超过了线程的堆栈大小,因此导致了一个奇怪的&随机EXC_BAD_ACCESS被解雇。
我希望调试器能够在这种情况下产生更直接的线索。
这是一个有效的'堆栈溢出'问题,已解决。