2009-07-30 13 views
12

私はをUINavigationコントローラの私の最初の画面として持っています。Objective-CのretainCountとは何ですか?

私の最初の画面では、私はNSLog(@"Home Screen retain Count=%d",[self retainCount]);で、そのviewDidLoadが呼び出されたときに6インチを記録します。

これは間違いありませんか?

答えて

15

retainCountは、オブジェクトに未処理の所有権主張の数です。

名前が「alloc」または「new」で始まるメソッドまたは「copy」(alloc、newObject、またはmutableCopyなど)を含むメソッドを使用してオブジェクトを作成した場合、またはオブジェクトを送信した場合保持メッセージ。これらのすべてがretainCountをインクリメントします。

"release"または "autorelease"を使用して所有権を放棄します。これらはretainCountを減らします。

ただし、retainCountの値に注意を払うべきではありません。誤解を招くおそれがあります。単にmemory management rulesに従ってください。オブジェクトへの参照を保持し、終了したら所有権を放棄する必要があるときに所有権を持ち、問題はありません。

あなたがretainCountを見ているなら、あなたは間違ったやり方をしており、あなたは自分自身をさらに混乱させるでしょう。

1

いいですね。なぜそれが間違っているだろうか?

一般的に、保持カウントから何かを判断しようとするのは悪い考えです。オブジェクトを保持できる時間についての規則はありません。唯一の規則は、各リテールがリリースとバランスを取る必要があることです。

関連する問題