当我尝试运行构建时,我收到错误'Initialiser element is not a compile-time constant'。结果表明,Array是问题的根源。我的代码如下:
@implementation XYZViewController
//Array setup
NSArray *example = @[@"X", @"Y", @"Z"];
@end
这不是我的所有代码,但我目前认为没有必要在此处显示我的完整代码。
答案 0 :(得分:2)
关键是@[@"X", @"Y", @"Z"];
不是静态初始值设定项,因为编译器会将其转换为对arrayWithObjects:count:
的{{1}}的方法调用。
静态初始化不能是方法调用,当然编译器会抱怨它。
如果要对数组进行初始化,可以在运行时在方法内部执行此操作。你有几种选择。
如果你想为每个实例初始化数组,只需在默认的inizializer中执行(一个是取决于特定的类)。
如果你想在课程级别这样做,你可以在NSArray
类方法中完成。
答案 1 :(得分:1)
你试图在这个块中声明数组,这就是它显示错误的原因, 试试这个,
@implementation XYZViewController {
//Array setup
NSArray *example ;
}
@end
在viewDidLoad方法中指定数组值,或在其他地方指定此example = @[@"X", @"Y", @"Z"];
。