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

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

4

2 回答 2

3

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

string1、string2 和 string3 将在运行时指向该内存,当它们各自的指令正在执行时。

于 2013-07-11T08:09:24.053 回答
1

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

于 2013-07-11T08:09:00.643 回答