无法确定此错误发生了什么。
我正在分多个段上传文件。
我已将我的 api 调用线程化为 7 个并发线程。
这是它停止的汇编代码。
这是我打印的堆栈跟踪
最后是堆栈窗口
除了 dispatch_get_low() 的 #define 之外,我没有任何 DISPATCH_QUEUE_PRIORITY_LOW 并且我没有对 dispatch_get_low() 的任何调用
作为一点背景知识,我正在从 xcode 4.4 开发我的应用程序,最近安装了 GM Seed 4.5 以在 ios 6 上进行测试。我所有的代码仍然是 ios5,这个错误在 xcode 更新前后困扰着我。
更新
将 NSZombieEnabled YES 添加回我的环境变量后
我以几乎相同的方式出现了一个不同的错误,但是这个错误被称为转发
装配断点
堆栈跟踪打印输出
调用堆栈窗口
我仍然不知道实际发生了什么。
我还在调查。任何进一步的帮助将不胜感激。
==== 新发展 ====
显然,在尝试获取 malloc 调用的一些输出时。我完全缓解了这个错误。
这令人沮丧,因为我认为我不能在启用此标志的情况下编译发布。
EXC_BAD_ACCESS 不再出现,因此日志将无用。这个错误是我遇到过的最奇怪的问题,而且我遇到了很多奇怪的 iOS 错误。
再次更新
我一直在跟踪这个错误。原来有问题的对象是一个-[CFNumber release]
调用该数字是在一个块中创建的,然后被传递给委托人。
它也可以与核心数据对象保存然后消失。
我添加了一个方法 HSLogBrute(@"") 记录行号和文件名。
我已将其追踪到以下代码。
if (progressMatch > progressPercent){
HSLogBrute(@"");
TransferStatus *transferStatus = [TransferStatus objectByID:task.transferStatusID];
HSLogBrute(@"");
transferStatus.segmentsTransferred = [NSNumber numberWithInt:segmentsTransferred.intValue];
HSLogBrute(@"");
transferStatus.segmentsTotal = [NSNumber numberWithInt:segmentsTotal.intValue];
HSLogBrute(@""); // This is the last log I am getting.
[transferStatus save];
HSLogBrute(@"");
}
HSLogBrute(@"");// Before putting in the [NSNumber numberWithInt:] calls this was the last line.