私はをUINavigation
コントローラの私の最初の画面として持っています。Objective-CのretainCountとは何ですか?
私の最初の画面では、私はNSLog(@"Home Screen retain Count=%d",[self retainCount]);
で、そのviewDidLoad
が呼び出されたときに6インチを記録します。
これは間違いありませんか?
私はをUINavigation
コントローラの私の最初の画面として持っています。Objective-CのretainCountとは何ですか?
私の最初の画面では、私はNSLog(@"Home Screen retain Count=%d",[self retainCount]);
で、そのviewDidLoad
が呼び出されたときに6インチを記録します。
これは間違いありませんか?
retainCountは、オブジェクトに未処理の所有権主張の数です。
名前が「alloc」または「new」で始まるメソッドまたは「copy」(alloc、newObject、またはmutableCopyなど)を含むメソッドを使用してオブジェクトを作成した場合、またはオブジェクトを送信した場合保持メッセージ。これらのすべてがretainCountをインクリメントします。
"release"または "autorelease"を使用して所有権を放棄します。これらはretainCountを減らします。
ただし、retainCountの値に注意を払うべきではありません。誤解を招くおそれがあります。単にmemory management rulesに従ってください。オブジェクトへの参照を保持し、終了したら所有権を放棄する必要があるときに所有権を持ち、問題はありません。
あなたがretainCountを見ているなら、あなたは間違ったやり方をしており、あなたは自分自身をさらに混乱させるでしょう。
いいですね。なぜそれが間違っているだろうか?
一般的に、保持カウントから何かを判断しようとするのは悪い考えです。オブジェクトを保持できる時間についての規則はありません。唯一の規則は、各リテールがリリースとバランスを取る必要があることです。