クラスのヘッダにMutableArray rqst_entriesをプロパティとして宣言して合成しました。私は、次のコードを追加のviewDidLoadで :助けるためこれは保持されているか、または自動解放オブジェクトですか?
self.rqst_entries = [NSMutableArray array];
それは自動解放すること、多分(deallocをが呼び出される前)以前にそれを解放するために、このIVARを向けるだろう
Thxを、
ステファン
クラスのヘッダにMutableArray rqst_entriesをプロパティとして宣言して合成しました。私は、次のコードを追加のviewDidLoadで :助けるためこれは保持されているか、または自動解放オブジェクトですか?
self.rqst_entries = [NSMutableArray array];
それは自動解放すること、多分(deallocをが呼び出される前)以前にそれを解放するために、このIVARを向けるだろう
Thxを、
ステファン
プロパティをretain
またはcopy
のいずれかに定義した場合、それはivarによって保持され、正常になります。一方、あなたのプロパティがassigned
であると定義した場合は、[NSMutableArray array]が自動リリースされるため、問題が発生します。
あなたの財産がretain
またはcopy
の場合はありません。
あなたの財産が保持されていれば、あなたは大丈夫です。自動リリースされたオブジェクトをプロパティに割り当てましたが、このアクションはそれを保持しています。
[NSMutableArray配列]は、自動解放されたオブジェクトを返します。
みんなの回答は、プロパティrqst_entries
です。基本的には、メモリモデルがretain
のプロパティが必要です。 copy
を使用する場合がありますが、これは通常は不変型(NSArray、NSStringなど)です。 NSMutableArrayは変更可能です(エントリの追加、エントリの削除、配列内のエントリの変更が可能です)。
あなたが好きなあなたの財産を定義したい:本当に人をトリップ部分がアロケーション/コピーをしている
@property (nonatomic, retain) NSMutableArray *rqst_entries;
のようなプロパティの割り当てに保持/:この意志ので
self.rqst_entries = [[NSMutableArray alloc] init];
リークが続くまでリークしないでください。
[self.rqst_entries release];
この場合に割り当てる最も良い方法は、 ocal変数(少なくともスレッドの安全が必要な場合) like:
NSMutableArray *myArray = [[NSMutableArray alloc] init;
self.rqst_entries = myArray;
[myArray release];
これは非常に簡単な例ですが、その点を説明しています。
誰もがこのプロパティのメモリモデルで推測しているので、 'rqst_entries'プロパティをどのように定義するかのコードを追加してください。 – Sam