私は本当に奇妙な問題を抱えています。可変であると主張し、addObject: に応答すると主張する可変配列がありますが、可変ではないと言ってクラッシュします。
コードは次のとおりです。
NSLog(@"Can add object: %d", [[MySingleton sharedInstance].myArray respondsToSelector:@selector(addObject:)]);
if([[MySingleton sharedInstance].myArray isKindOfClass:[NSMutableArray class]])[[MySingleton sharedInstance].myArray addObject:objectToAdd];
else NSLog(@"Not mutable");
ここで、可変コピーに設定すると機能します。
NSLog(@"Can add object: %d", [[MySingleton sharedInstance].myArray respondsToSelector:@selector(addObject:)]);
if([[MySingleton sharedInstance].myArray isKindOfClass:[NSMutableArray class]])[[MySingleton sharedInstance].myArray.mutableCopy addObject:objectToAdd];
else NSLog(@"Not mutable");
何故ですか?変更可能で addObject: できると主張しているのに、変更可能なコピーを使用しないとクラッシュするのはなぜですか?