Objective c 目标C初始化器元素不是编译时常量
当我尝试运行我的构建时,我得到错误“Initialiser元素不是编译时常量”。结果表明,阵列是问题的根源。我的代码如下:Objective c 目标C初始化器元素不是编译时常量,objective-c,nsarray,constants,compile-time,Objective C,Nsarray,Constants,Compile Time,当我尝试运行我的构建时,我得到错误“Initialiser元素不是编译时常量”。结果表明,阵列是问题的根源。我的代码如下: @implementation XYZViewController //Array setup NSArray *example = @[@"X", @"Y", @"Z"]; @end 这不是我的全部代码,但我目前认为没有必要在此处显示我的完整代码。您试图在此块中声明数组,这就是它显示错误的原因, 试着这样, @implementation XYZViewContr
@implementation XYZViewController
//Array setup
NSArray *example = @[@"X", @"Y", @"Z"];
@end
这不是我的全部代码,但我目前认为没有必要在此处显示我的完整代码。您试图在此块中声明数组,这就是它显示错误的原因, 试着这样,
@implementation XYZViewController {
//Array setup
NSArray *example ;
}
@end
在viewDidLoad方法中指定数组值,或在其他类似的方法中指定数组值,例如=@[@“X”、@“Y”、@“Z”]代码>重点是
[@“X”、@“Y”、@“Z”]
不是静态初始值设定项,因为编译器将其转换为对arrayWithObjects:count:
ofNSArray
的方法调用
静态初始化不能是方法调用,当然编译器会对此进行抱怨
如果您想对数组进行序列化,可以在运行时在方法内部进行。你有几个选择来做这件事
如果要为每个实例对数组进行初始化,只需在默认的初始化器中进行(具体是哪一个取决于特定的类)
如果要在类级别执行此操作,可以在
initialize
class方法中执行此操作。NSArray示例[]=@[@“X”、@“Y”、@“Z”];问题是您试图创建指向常量的指针。您必须创建具有常量值的变量并指向它。谢谢您的帮助。我是一个客观的Noob。