Компилятору это не нравится, потому что вы не можете вызывать функции в инициализаторе Си.
Предполагая, что это подкласс UIViewController, если вам нужен один массив на контроллер, вы должны сделать его переменной экземпляра и инициализировать его в -viewDidLoad
, или вы можете сделать это в -initWithNibName:bundle:
.Массив должен быть освобожден в -viewDidUnload
или -dealloc
соответственно.
Если ваш массив должен быть уникальным и совместно использоваться всеми контроллерами, проще всего создать метод класса, подобный так:
+(NSArray*) myVar
{
static NSArray* theArray = nil;
if (theArray == nil)
{
theArray = [[NSArray alloc] init]; // Do not use [NSArray array] because you need to own the returned object
// until the program dies
}
return theArray;
}
NB. Я использовал NSArray
везде, как и у вас, но, скорее всего, вам нужен NSMutableArray
.