配列にEXC_BAD_ACCESS
値を代入するとクラッシュしますid __strong *
これがコードです
id __strong *entries;
entries = (id __strong *)malloc(sizeof(id) * 20);
for (NSUInteger j = 0; j < 20; j++)
{
entries[j] = @{@"key1" : @"value1", // Crash
@"key2" : @"value2",
@"key3" : @"value3"]};
}
//...
free(entries);
値が何であるかは問題ではありません。これでも:
entries[j] = [NSNumber numberWithInt:1];
クラッシュします。
毎回クラッシュするわけではありませんが、数回の試行で発生します。インデックス 0 に値を割り当てるとクラッシュが発生するため、for ループの途中で発生するものではなく、for ループを切り取ってもクラッシュは修正されません。
停止を有効NSZombies
にすると、クラッシュは発生していないように見えますが、ゾンビについて不平を言う出力はありません。Zombies Instrument を使用する場合も同じことが起こります - クラッシュもゾンビ出力もありません。Guard Malloc を有効にすると、クラッシュも停止するようです。
を に変更するとクラッシュも停止するようですが、これは本当に問題の修正でしょうか? もしそうなら、なぜですか__strong
?__autoreleasing
何か案は?