何时定义变量的值?

时间:2013-07-11 08:00:49

标签: objective-c xcode runtime clang compile-time

    NSString *string1 = @"string one";
    NSString *string2 = @"string two";
    NSString *string3 = [string1 stringByAppendingString:string2 ];

对于当前版本的Xcode,使用上面的代码片段会在编译时或运行时定义每个string1,string2,string3吗?

2 个答案:

答案 0 :(得分:3)

您在编译时在内存中定义字符串(对于string1和string2)。

string1,string2和string3将在执行相应指令时指向该内存。

答案 1 :(得分:1)

为变量本身分配空间的代码(如果编译器实际认为有必要这样做)将在编译时生成并在运行时执行。两个常量字符串也将在编译时创建,类似于常量C字符串。直到运行时才会执行消息发送。