1

[object_name retain]そのオブジェクト参照カウントを1増やし、そのオブジェクト参照カウントを1[object_name release]減らすことがわかりました[pool drain]。これは、参照するすべてのオブジェクトにリリースを適用します。

今、私は混乱しています。オブジェクトへの参照がない場合、オブジェクトはどうなりますか? release参照カウントをデクリメントするだけで、drainメモリは実際にゼロ参照カウントで解放されますか、それともゼロ参照カウントのオブジェクトがまだありますか?

私もここで見つけました

[pool drain]//オブジェクトstr3参照カウントをゼロにします

NSLog(@"%li",[str3 length]);//動作しますが、オブジェクトはまだ破棄されていない可能性があります!

//ここに他のコード

だが

[pool drain]

//ここに他のコード

NSLog(@"%li",[str3 length]);//動作していません、今破壊されている可能性があります!

4

2 に答える 2

5

その時への強い参照がない場合(つまり、リリースによって保持カウントが0に下がる場合)、オブジェクトの割り当てが解除されます。

ただし、この-retainCountメソッドは役に立たないため、呼び出すべきではないことを忘れないでください。

于 2012-11-24T06:39:28.297 に答える
0

保持カウントがゼロになるとオブジェクトは破棄され、使用できなくなると思います。詳しくはこちらをご覧ください。

于 2012-11-24T06:38:57.763 に答える