In dem folgenden Code ist PersonListArray ein NSMutableArray und ich bekomme die Liste der Personen aus der SQLite-DB und fügen sie zu meinem Array.Speicherverlust beim Hinzufügen von Objekten zu Nsarray
Person* tmpPerson = [[Person alloc] init];
tmpPerson.personName = @"Mike";
tmpPerson.personEmail = @"[email protected]";
[PersonListArray addObject:tmpPerson];
[tmpPerson release];
Auch wenn ich hier das Objekt Person bin Loslassen, es ist ein Speicherleck zu geben, die ich vermute, ist aufgrund der Anordnung einen Referenzzähler, um es zu halten. Ich verwende das Array an anderer Stelle im Programm und lasse es dann sicher los.
Wie empfiehlt es sich, neue Objekte für ein Array zu erstellen und dieses Problem nicht zu lösen?
Im dealloc Methode, wo ich das Array freigeben
-(void) dealloc{
[PersonListArray release]; // this contains the numerous Person objects
[super dealloc];
}
sollte ich sie manuell wie dieser Stelle veröffentlichen?
-(void) dealloc{
for (int i = 0; i<PersonListArray.count;i++)
{
Person * tmpPerson = [PersonListArray objectAtIndex:i];
[tmpPerson release];
}
[PersonListArray release];
[super dealloc];
}
Hier ist mehr Code, um ein besseres Bild zu bekommen ... @ Schnittstelle Person: NSObject { \t NSString * personName; \t NSString * personMobile; \t NSString * personEmail; \t } @Eigenschaft (nicht atomar, behalten) NSString * personName, * personEmail, * personMobile; – ArdenDev