NSString *string1 = @"string one";
NSString *string2 = @"string two";
NSString *string3 = [string1 stringByAppendingString:string2 ];
Xcode の現在のバージョンでは、上記のスニペットを使用して、string1、string2、string3 のそれぞれがコンパイル時または実行時に定義されますか?
NSString *string1 = @"string one";
NSString *string2 = @"string two";
NSString *string3 = [string1 stringByAppendingString:string2 ];
Xcode の現在のバージョンでは、上記のスニペットを使用して、string1、string2、string3 のそれぞれがコンパイル時または実行時に定義されますか?
コンパイル時にメモリ内の文字列を定義します (string1 と string2 の場合)。
string1、string2、および string3 は、それぞれの命令が実行されている実行時にそのメモリを指します。
変数自体にスペースを割り当てるコード (コンパイラが実際にそうする必要があると判断した場合) は、コンパイル時に生成され、実行時に実行されます。2 つの定数文字列は、C 定数文字列と同様に、コンパイル時にも作成されます。メッセージ送信は実行時まで実行されません。