なんとなく

忘備録です

ループ内でオブジェクトを削除してはいけないメモ

実行中に、急に エラーで落ちるようになりました。

Terminating app due to uncaught exception 'NSGenericException', …

珍しく?Exception出してくれてる!

”NSGenericException”

さっきまでは出てなかったのに。XcodeXcode 4.3.2 → 4.3.3 にバージョンアップしてから?
のような気が… 多分…

・エラーソース

NSMutableArray *testArray = …;
for (id obj in testArray) {
    NSDisctionary *dObj = obj;
    if ([dObj.allKeys containsObject:@"hogeKey"])
    {
        [testArray removeObject:obj];
    }
}

さっきまで動いてたのに…

どうやら、ループ内でオブジェクトを削除したらダメらしい。
あれ? 確かに ダメだけど、私 やってたんだ…w

・Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x117540> was mutated while being enumerated
http://stackoverflow.com/questions/4732991/terminating-app-due-to-uncaught-exception-nsgenericexception-reason-col

サンクス!スタックオーバーフロー!