时,这是我声明我的数组:“初始元素不是常量”声明数组
NSArray *atouts = [[NSArray alloc] arrayWithObjects:@"1",@"2",nil];
,但我发现:
初始值设定元素不是常数
那么声明静态数组的最佳方法是什么?
时,这是我声明我的数组:“初始元素不是常量”声明数组
NSArray *atouts = [[NSArray alloc] arrayWithObjects:@"1",@"2",nil];
,但我发现:
初始值设定元素不是常数
那么声明静态数组的最佳方法是什么?
你想要么:
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];
您确定在该行中出现错误吗?因为错误是关于C数组,AFAIK。无论如何,您需要使用[[NSArray alloc] initWithObjects:...]或[NSArray arrayWithObjects:...],而不是[[NSArray alloc] arrayWithObjects:...]来代替[[NSArray alloc]]。请注意,后者是自动发布的。
是啊,它的那一行:( – 2010-10-16 21:49:16
嗯,仍然使用这两行中的任何一行,它可能与我的头文件有关? (\t NSArray * atouts;) – 2010-10-16 21:48:36
@Julz编辑答案 – 2010-10-16 22:00:52
感谢您查看它,但它现在错误是这样的:“警告:数据定义没有类型或存储类” - “警告:在声明中键入默认为'int' 'atouts'“ - ”错误:'atouts'的冲突类型“ – 2010-10-17 20:42:17