声明数组时“初始化元素不是常量”

时间:2010-10-16 21:38:59

标签: iphone objective-c

这就是我声明我的数组的方式:

NSArray *atouts = [[NSArray alloc] arrayWithObjects:@"1",@"2",nil];

但我得到了:

Initializer元素不是常量

那么声明静态数组的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

你想要:

NSArray * atouts = [[NSArray alloc] initWithObjects:@"1", @"2", nil];

或者:

NSArray * atouts = [NSArray arrayWithObjects:@"1", @"2", nil];

编辑然而,真正的问题是您无法像这样初始化静态数组。你必须做类似的事情:

static NSArray * atouts = nil;

//in some method that's invoked early
atouts = [[NSArray alloc] initWithObjects:@"1", @"2", nil];

答案 1 :(得分:0)

你确定你在那条线上得到了那个错误吗?因为错误是关于C数组,AFAIK。

无论如何,你需要使用[[NSArray alloc] initWithObjects:...]或[NSArray arrayWithObjects:...]而不是[[NSArray alloc] arrayWithObjects:...]。请注意,后者是自动释放的。