Ich habe ein Array NSMutableArray
mit glücklichen Objekten. Diese Objekte schalten mich bösartig ein, wenn ich versuche, die Anordnung aller Objekte zu löschen und neu zu bevölkern.NSMutableArray Zerstörung
Es ist in der init-Funktion zugeordnet ist wie so
self.list = [NSMutableArray array];
Die verschiedenen Methoden, die ich verwendet habe, es zu räumen sind:
self.list = nil;
self.list = [NSMutableArray array];
und
[self.eventList removeAllObjects];
Explizit Zuteilung und Freigabe Das Array funktioniert auch nicht. Das Leck tritt nur auf, wenn ich versuche, die Liste zurückzusetzen.
Fehle ich einen Schritt beim Zurücksetzen oder ist das ein anderes Problem?
@Eigenschaft (nicht atomisch, behalten) NSMutableArray * -Liste; Ich habe eine Synthese, aber der Core-Dump passiert nur, wenn ich versuche, die Objekte manuell freizugeben. Was ich meine, wenn ich mich einschalte, sind die Objekte, die undicht werden (ich denke) – SageAMDP
Woher weißt du, dass sie undicht sind? Prüfen Sie Instrumente/Lecks? Wenn Sie schlechte Zugriffe erhalten, bedeutet das, dass Sie etwas freigeben, das bereits freigegeben ist. Leaks sind in dem Sinne schwerer zu finden, dass Sie ein Tool verwenden müssen, um sie zu fangen (oder sehen Sie einfach, wie Ihr Speicher wächst). – Elfred
Also, wenn Sie tun [Liste addObject: [[MyObj Alloc] init]; und höher [list removeAllObjects]; Sie sind wahrscheinlich undicht. Die Lösung wäre, eine Klassenmethode bereitzustellen, die ein automatisch freigegebenes Objekt zurückgibt. – Elfred