EXC_BAD_ACCESS应用崩溃目标C代码= 1

时间:2016-08-16 15:42:54

标签: ios objective-c xcode7

应用程序在达到此代码时崩溃

- (void)setUniformsForProgramAtIndex:(NSUInteger)programIndex {
    [uniformStateRestorationBlocks enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
        dispatch_block_t currentBlock = obj;
        // error here is Thread:20 EXC_BAD_ACCESS (code =1, address= 0x579fcea0)
        currentBlock();
    }];
}

尝试了很多东西,但仍然无法弄清楚错误是什么,请帮我解决这个问题......

3 个答案:

答案 0 :(得分:1)

检查字典的内容。 看起来obj被释放了,因为它在你添加它时保留了它。设置断点并检查obj中的值。

答案 1 :(得分:1)

也许uniformStateRestorationBlocks的值不是有效dispatch_block_t对象,或者对象已在其他地方发布?

通常,通过访问已释放或无效的指针会发生EXC_BAD_ACCESS崩溃。

答案 2 :(得分:0)

您需要确保uniformStateRestora‌​‌​tionBlocks中的值实际上是一个块。