无法确定此错误发生了什么。
我正在上传多个细分的文件。
我已将api调用线程化为7个并发线程。
以下是它停止的汇编代码。
这是我的打印堆栈跟踪
最后是Stack窗口
除了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不再出现,因此日志将无用。这个bug已经成为我遇到的最奇怪的问题,而且我遇到了很多奇怪的iOS漏洞。
再次更新
我一直在追踪这个错误。原来问题的对象是-[CFNumber release]
调用该数字是在一个块中创建的,然后传递给委托。
它也可以与Core Data对象组合保存然后离开。
我添加了一个记录行号和文件名的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.
答案 0 :(得分:0)
原来我们正在创建一个NSMutableDictionary并在其中使用数字。像我们一样快速地创建和销毁NSNumber似乎在某种程度上混淆了弧。并且对象被保留并且不按顺序发布。
我的解决方案是创建一个自定义对象,其中包含我需要的数字。并递增和递减这些原始数字类型,而不是创建和销毁这么多NSNumber值。