1

iOSで文字列変数を初期化する2つの方法の違い(,adv/disadv)は何ですか?

NSString *var = @"value"NSString *var =[ [NSString alloc] initWithString:@"value"]

4

2 に答える 2

3

コード:

NSString *var = @"value";

NSCFConstantStringコンパイラによって作成され、プログラムのデータの一部として格納されるインスタンスを作成します。応答しないretainrelease、メモリ管理の目的で事実上無視できます。

ただし、コード:

NSString *var =[ [NSString alloc] initWithString:@"value"];

オブジェクトを割り当て、NSString定数 string の内容で初期化します@"value"。不要になったときにreleased にする必要がありますが、更新することはできません (不変です)。

于 2012-05-08T10:44:23.413 に答える
2

@"value" は自動解放された文字列を返しますが、initWithString: は解放する必要がある保持された文字列を返します。ARC を使用している場合は、ARC が解放してくれるので違いはありません。

于 2012-05-08T09:56:02.723 に答える