Следующий код должен работать:
- (NSArray *)test {
NSArray *a = [NSArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:2], nil];
return a;
}
Обратите внимание, что если бы мы создали NSArray
с использованием [[NSArray alloc] initWithObjects:blah, blah, nil];
, нам пришлось бы явно autorelease
массив перед его возвратом, чтобы избежать утечки памяти. В этом случае, однако, NSArray
создается с помощью удобного конструктора, поэтому массив для нас уже autorelease
d.
Второй вопрос:
Попробуйте это:
- (NSMutableArray *)test:(int)count {
NSMutableArray *a = [[NSMutableArray alloc] init];
for (int i = 0; i < count; i++) {
[a insertObject:[NSNumber numberWithInt:0] atIndex:i];
}
return [a autorelease];
}