Ios5 objc_释放EXC_坏访问

Ios5 objc_释放EXC_坏访问,ios5,core-data,automatic-ref-counting,grand-central-dispatch,ios6,Ios5,Core Data,Automatic Ref Counting,Grand Central Dispatch,Ios6,无法确定此错误的原因 我正在上传多段文件 我已将api调用线程化为7个并发线程 这是它停止的汇编代码 这是我打印的堆栈跟踪 最后是堆栈窗口 除了#define for DISPATCH _get _LOW()之外,我没有任何DISPATCH _QUEUE _PRIORITY _LOW()调用,也没有任何DISPATCH _get _LOW()调用 作为一个小背景,我正在从xcode 4.4开发我的应用程序,最近安装了GM Seed 4.5以在ios 6上测试。我所有的代码仍然是ios5,这

无法确定此错误的原因

我正在上传多段文件

我已将api调用线程化为7个并发线程

这是它停止的汇编代码

这是我打印的堆栈跟踪

最后是堆栈窗口

除了#define for DISPATCH _get _LOW()之外,我没有任何DISPATCH _QUEUE _PRIORITY _LOW()调用,也没有任何DISPATCH _get _LOW()调用

作为一个小背景,我正在从xcode 4.4开发我的应用程序,最近安装了GM Seed 4.5以在ios 6上测试。我所有的代码仍然是ios5,这个bug在xcode更新前后一直困扰着我

更新

将NSZombieEnabled YES添加回我的环境变量后

我遇到了一个几乎相同的错误,这个错误被称为转发

程序集断点

堆栈跟踪打印输出

调用堆栈窗口

我仍然不知道到底发生了什么事

我还在调查。任何进一步的援助都将不胜感激

===新的发展====

显然是在尝试获取malloc调用的一些输出时。我完全消除了这个错误

这是令人沮丧的,因为我不认为我可以在启用此标志的情况下编译发布

EXC_BAD_访问不再出现,因此日志将无效。这个bug是我遇到过的最奇怪的问题,我也遇到过很多奇怪的iOS bug

再次更新

我一直在追踪这个错误。结果表明,出现问题的对象是一个
-[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.

原来我们在创建一个NSMutableDictionary并在其中使用数字。像我们现在这样快速地创建和销毁NSNumbers似乎在某个点上混淆了arc。这些物品被乱放乱放


我的解决方案是创建一个自定义对象,其中包含我需要的数字。增加和减少这些原始数字类型,而不是创建和销毁这么多NSNumber值。

您尝试过NSZombies吗?我很久以前就这么做了。我将确保它在应用程序中仍然具有此功能。请参阅此处了解如何正确启用此功能,以确保您尝试执行的块有效。我在尝试执行坏块时遇到了坏的访问内存问题。好吧,这些块应该被它们的封闭块保留和释放。我添加了
BlockType block=[blockVar copy]
以启用复制并让堆栈块消失。但我看不到任何改善。