以下代码给我错误:
// constants.h
extern NSArray const *testArray;
// constants.m
NSArray const *testArray = [NSArray arrayWithObjects: @"foo", @"bar", nil];
我得到的错误是
initializer element is not constant
或者,如果我拿走指针指示器 (*),我会得到:
statically allocated instance of Objective-C class 'NSArray'
简而言之,你不能。 Objective-C 对象(NSString 除外)仅在运行时创建。因此,您不能使用表达式来初始化它们。
有几种方法。
(1)声明NSArray *testArray
没有const
关键字,然后有一些代码设置在应用程序生命周期早期调用的值。
(2) 声明一个返回数组的方便的类方法,然后使用static NSArray *myArray
在该方法中并将其视为单例(搜索“objective-c singleton”以获取有关如何实例化的无数答案)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)