-1

実際には、そうです、Getter が所有者です。したがって、Getter を呼び出す人は、メモリを解放する責任を負いません。より正確には、オブジェクト自体が所有者ですが、Getter はインスタンス変数を他のユーザーに配信するメカニズムとして機能します。そうですか、それとも私が間違っていましたか?

4

4 に答える 4

1

参照カウント システムを使用する Cocoa について質問しているため、「所有者」などというものはありません。参照を保持しているすべての人が部分的な所有者であり、参照を解放する責任があります。最後の参照が解放されると、オブジェクトの割り当てが解除されます。

慣例により、ゲッターは呼び出し元に保持参照を与えませんが、それは呼び出し元がオブジェクトを明示的に保持することを選択できなかったという意味ではありません。

于 2009-04-29T21:58:49.727 に答える
0

基本的にあなたは正しいですが、それは単なる慣例の問題です。規則が一貫して適用され、プロジェクトに取り組んでいる全員がそれに同意している限り、あなたは成功しています。

問題が発生する可能性があるのは、呼び出し元がアクセサーから取得したメモリへのポインターをキャッシュし、オブジェクトが破棄されてポインターがぶら下がっている場合です。

于 2009-04-29T21:34:52.030 に答える