1

クラス外のオブジェクトの変数にアクセスする必要はめったにないため、プロパティをほとんど使用しないことに気付きました;)

だから私は通常行う:

NSMutableArray *myArray; // not a property !

私の質問は: myArray をプロパティとして宣言しなくても、iphone はとにかく保持しますか?

myArray = arrayPassedToMe;

そう思いますが、確認したかっただけです;)

どんな考えでも大歓迎です!

ゴティエ

4

2 に答える 2

2

'retain' を使用してプロパティを宣言しない場合、retain 呼び出しは行われません。一般に、プロパティ アクセサーを使用することをお勧めします (すべての場合で、メモリ管理がはるかに簡単になります)。ただし、手動で保持を実行することもできます。

myArray = [otherArray retain];
于 2010-03-22T09:15:27.963 に答える
0

Kevinの答えに追加するだけですが、この場合、myArrayが現在指している既存のオブジェクトが解放されていることを確認してから、新しい値を割り当てる必要があります。つまり、次のようになります。

[myArray release];
myArray = [otherArray retain];

宣言されたプロパティを介してクラス変数にアクセスすると、メモリの保持/解放に関するこれらすべての処理が自動的に行われるため、作業がはるかに簡単になります。

于 2010-03-22T12:30:57.167 に答える