質問

私は、実行時に、構築しますiPhoneアプリ、(キーと値のペアの)値がNSMutableArraysされるためNSMutableDictionaryに取り組んでいます。 Objective-Cのに幾分新しいので、私は次のようにメモリリークが発生することを懸念しています:

- (void) addNewSupplierPhoto:(UIImage*)image toSupplierID:(NSInteger*) supplierID{
NSMutableArray* supplierPhotoArray = [supplierPhotos objectForKey:supplierID];
if(supplierPhotoArray == nil)
{
    supplierPhotoArray = [[NSMutableArray alloc] init];
    [supplierPhotos setObject:supplierPhotoArray forKey:supplierID];
    [supplierPhotoArray release];
}
}

supplierPhotos含むクラスのメンバ変数であるNSMutableDictionary、である。

あなたが見ることができるように、私は新しいUIImageを受け入れていたときに

は、* Iは、第一、第二引数(仕入先)に対応するキーと値のペアのオブジェクトがnilであるかどうかをチェックし、構造体に入れます。 nilであると、私のalloc新しいNSMutableArrayのとそのキーの対象として設定し、それを解放します。私は、このメソッドを含むクラスののdeallocでNSMutableDictionaryをDEALLOCと仮定すると、参照が解放されるのですか? dealloc-INGのNSMutableDictionaryを前に、私はそれを介して実行する必要がありますかとのdealloc個々NSMutableArraysは?

内に含まれます

おかげで、

ベン・Bます。

役に立ちましたか?

解決

あなたは辞書や配列などのコンテナにオブジェクトを追加します。

、保持が自動的に起動され、あなたがあなたの質問それの辞書のような容器を離すと、そのオブジェクトのメモリをDEALLOCするすべてのオブジェクトの「解放」を呼び出します。

他のヒント

は、このメモリ管理は、私には正しく見えます。あなたは1つがあなたがalloc'dてきたコピー解放し、そしてあなたはそれに追加すると、ネットカウントが正確である1であるので、配列は、別の参照を保持しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top