1

次の結果は何ですか?

NSString *myStr = [[[NSString alloc] initWithString:@"Hello World."] autorelease];
myStr = [NSString stringWithString:@"Hello Again."];

すでに自動解放されている文字列に設定されている を呼び出すmyStrため、正しく解放されますか、それともクラッシュしますか?autoreleasemyStr

4

1 に答える 1

4

コード例は、期待どおりに機能します。 autoreleaseメッセージを送信した後、それが参照するオブジェクトをどうにかして変更することはできません。@"Hello World."@"Hello Again."オブジェクトは異なるオブジェクトですが、例では同じポインター変数を使用してそれらを参照しています。

于 2012-03-14T18:02:42.280 に答える