-2

これらはクラスであり、ポインタを宣言しています...オブジェクトへの右ですか?オブジェクトのようにメソッドを送信します。 NSNumber * myNumber = [NSNumber numberWithInteger: x];

では、なぜそれらは次のようにリリースされないのですか。 [myNumber release];

ありがとう!

4

2 に答える 2

1

メモリ管理「NARC」について覚えておくべきルールがあります。NewAllocRetainCopyを使用する場合は、オブジェクトを解放または自動解放する必要があります。そうでない場合は、そうしないでください。

于 2013-03-10T18:01:44.260 に答える
1

慣例により、あなたが示したようなクラスメソッド初期化子は自動解放されたインスタンスを作成するので、何らかの方法でそれらを呼び出さreleaseない限り、呼び出す必要はありません。retainただし、インスタンスメソッドの初期化子initWithInteger:(あなたの場合のように)は、保持されたインスタンスを返します。あなたが自分自身を解放する必要があるもの。

于 2013-03-10T18:02:19.010 に答える