次のコードのメモリ割り当てが不思議です。私はその後、@ "文字列"はどのようにメモリに割り当てられていますか?
myString = @"Hello world";
を呼び出すとき@""
は何が起こるか私は、これは自動解放空の文字列を作成します知っている
NSString *myString = [NSString string];
は、提供する自動解放オブジェクトNSString
と同じ私の参照であるか、私はちょうどでした私は解放の責任を負う新しいオブジェクトを割り当てますか?
最近私はメモリ管理に関する非常に良い記事を読んできました。http://goo.gl/Tp8WW これはあなたがより理解しやすくなることを願っています。 –
おかげさまで、私は一般的にココアのメモリ管理に非常に慣れています。ハードコーディングされた文字列がどのように機能するか少し不安でした。 –
@ Flash84x:割り当て解除を防ぐ実装の詳細は、定数文字列の保持カウントがINT_MAXであることです。これは実行時に特別なケースとして扱われ、 'retain'と' release'をno-opsに変えます。 – JeremyP