[英]Why does this Objective C code crash with EXC_BAD_ACCESS code=1? (Uses block syntax and dicts)
[英]EXC_BAD_ACCESS app crash Objective C code = 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
的值不是有效的dispatch_block_t
對象,或者某個對象已在其他地方釋放?
通常, EXC_BAD_ACCESS
崩潰是通過訪問已釋放或無效的指針而發生的。
您需要確保uniformStateRestorationBlocks
中的值uniformStateRestorationBlocks
是一個塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.