如果我按如下方式初始化NSArray
:
- (void) myMethod
{
NSArray *array = [NSArray arrayWithObjects:@"A","B","C",nil];
// DO SOME STUFF HERE
return;
}
这个不可变数组是在编译时还是在运行时初始化的?与NSDictionary
相同。我想它一定是在编译时,但只是想知道。
答案 0 :(得分:3)
否...它不会在编译时创建...它将在运行时在调用Method时创建。 通过不变性,这意味着一旦初始化它就无法编辑数组的大小。
请参阅this链接以获取有关对象可变性的更多信息...如果需要更多信息请告诉我.. :)
答案 1 :(得分:0)
否,编译时无法进行方法调用arrayWithObjects:
。在编译期间,它只检查语法,除非该变量是常量或静态。宏和常量在编译时初始化。请参阅下面的示例。
你可以直接初始化,如果大小如下所示(同样的例子也由@simalone发布)
int num[5] = {2,8,7,6,0};
答案 2 :(得分:0)
以下代码是您想要的吗?
static NSString *strArray[] = {@"A", @"B", @"C"};
要像这样使用索引:stringArray[index]
;