应用程序在达到此代码时崩溃
- (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();
}];
}
尝试了很多东西,但仍然无法弄清楚错误是什么,请帮我解决这个问题......
答案 0 :(得分:1)
检查字典的内容。 看起来obj被释放了,因为它在你添加它时保留了它。设置断点并检查obj中的值。
答案 1 :(得分:1)
也许uniformStateRestorationBlocks
的值不是有效dispatch_block_t
对象,或者对象已在其他地方发布?
通常,通过访问已释放或无效的指针会发生EXC_BAD_ACCESS
崩溃。
答案 2 :(得分:0)
您需要确保uniformStateRestorationBlocks
中的值实际上是一个块。