NSString* str = @"foo";
str = [NSString stringWithFormat:@"%@%@", str, @"bar"];
@ "foo"は自動リリースされますか?つまり、strが再割り当てされると、保持カウントは0になりますか?NSStringリークを再割り当てしますか?
NSString* str = @"foo";
str = [NSString stringWithFormat:@"%@%@", str, @"bar"];
@ "foo"は自動リリースされますか?つまり、strが再割り当てされると、保持カウントは0になりますか?NSStringリークを再割り当てしますか?
はい、リリースされます。あなたは/ init/new/allocを割り当てませんでした。
編集:実際には定数なので、「いいえ、漏れません」と言う方が正しいと思います。 alloc/init/new/copyアドバイスはまだ適用されます。
@"foo"
は、メモリ内のコンパイル時定数オブジェクトであるため、保持カウントは無関係です。あなたがやっているときにstringWithFormat:
で再利用しても、この方法で再割り当てすることは安全です。