EXC_BAD_ACCESS程序崩溃的目标C代码= 1个
问题描述:
在达到这个代码的应用程序崩溃EXC_BAD_ACCESS程序崩溃的目标C代码= 1个
- (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();
}];
}
尝试了很多事情,但还是无法弄清楚什么错误请帮我解决这个问题...
答
检查字典的内容。 看起来像obj被释放,它应该发生,因为它保留时,你添加它。放置一个断点并检查你在obj中获得的值。
答
您需要确定,uniformStateRestorationBlocks
中的值确实是一个块。
答
也许uniformStateRestorationBlocks
的值不是有效的dispatch_block_t
对象或对象已在其他位置释放?
通常,EXC_BAD_ACCESS
崩溃是通过访问已释放或无效的指针发生的。
'obj' - 你确定你得到一个块吗? – Igor
显示,你如何声明'uniformStateRestorationBlocks' – Igor
currentBlock = obj; @Igor –