次の方法では、配列の1つを解放すると例外が発生する理由がわかりません。私が見ることができた唯一の理由componentsSeparatedByString
は、自動解放された配列を返すかどうかですが、ドキュメントにそれが含まれていると記載されていることはわかりません。
-(void)addRow:(NSString *)stringWithNumbers;
{
NSArray *numbers = [stringWithNumbers componentsSeparatedByString:@" "];
NSMutableArray *row = [[NSMutableArray alloc] initWithCapacity:[numbers count]];
for (NSString *number in numbers) {
Number *n = [[Number alloc] initWithNumber:number];
[row addObject:n];
[n release];
}
[rows addObject:row];
[row release];
// [numbers release]; <-- leads to exception
}
アレイが自動解放されているかどうかを誰かが確認できますか?もしそうなら、どうすれば知ることができますか/なぜ知る必要がありますか?
オブジェクトのいずれかのインスタンスがコードによって自動解放されているかどうかを確認することは可能ですか?