不可变数组/字典初始化

时间:2014-03-11 06:39:25

标签: ios nsarray

如果我按如下方式初始化NSArray

- (void) myMethod
{
    NSArray *array = [NSArray arrayWithObjects:@"A","B","C",nil];
    // DO SOME STUFF HERE
    return;
}

这个不可变数组是在编译时还是在运行时初始化的?与NSDictionary相同。我想它一定是在编译时,但只是想知道。

3 个答案:

答案 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];

相关问题