В следующем методе я не уверен, почему освобождение одного из массивов приводит к исключению. Единственная причина, по которой я мог видеть, это то, что 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
}
Может ли кто-нибудь подтвердить, что массив автоматически освобожден? Если так, как я могу знать / почему я должен был знать?
Можно ли проверить, является ли какой-либо один экземпляр объекта автоматически выпущенным или нет по коду?