NSString *string1 = @"string one";
NSString *string2 = @"string two";
NSString *string3 = [string1 stringByAppendingString:string2 ];
对于当前版本的Xcode,使用上面的代码片段会在编译时或运行时定义每个string1,string2,string3吗?
答案 0 :(得分:3)
您在编译时在内存中定义字符串(对于string1和string2)。
string1,string2和string3将在执行相应指令时指向该内存。
答案 1 :(得分:1)
为变量本身分配空间的代码(如果编译器实际认为有必要这样做)将在编译时生成并在运行时执行。两个常量字符串也将在编译时创建,类似于常量C字符串。直到运行时才会执行消息发送。