以下のコードでは、PersonListArrayはNSMutableArrayであり、sqlite DBの人のリストを取得して配列に追加しています。私はその私は推測しているメモリリークを与え、ここでPersonオブジェクトを解放していたとしてもnsarrayにオブジェクトを追加するときにメモリリークが発生する
Person* tmpPerson = [[Person alloc] init];
tmpPerson.personName = @"Mike";
tmpPerson.personEmail = @"[email protected]";
[PersonListArray addObject:tmpPerson];
[tmpPerson release];
は、それに参照カウントを保持する配列によるものです。私は、プログラムのどこかで配列を使用しているし、それを確実にリリースしています。
アレイの新しいオブジェクトを作成してこの問題に遭遇しないようにするにはどうすればよいですか?私は、アレイ
-(void) dealloc{
[PersonListArray release]; // this contains the numerous Person objects
[super dealloc];
}
は私が代わりに手動でこのようにそれらを解放すべきリリースdeallocメソッドで
?
-(void) dealloc{
for (int i = 0; i<PersonListArray.count;i++)
{
Person * tmpPerson = [PersonListArray objectAtIndex:i];
[tmpPerson release];
}
[PersonListArray release];
[super dealloc];
}
もっと良い画像を得るためのコードがいくつかあります。 @interface Person:NSObject { \t NSString * personName; \t NSString * personMobile; \t NSString * personEmail; \t @property(非構造、保持)NSString * personName、* personEmail、* personMobile; – ArdenDev