In einer UIScrollViewDelegate Klasse auf iOS 4.2.1 in meinem iPad App, die -scrollViewDidEndDecelerating:
Methode eine andere Methode aufruft, tut dies:Warum ist `- [UILabel setText:]` Leak?
EntryModel *entry = [entries objectAtIndex:index];
self.titleLabel.text = entry.title;
title
ein nonatomic ist, behielt NSString Eigentum von EntryModel. titleLabel
ist eine nicht-atomare, beibehaltene Eigenschaft mit einem IBOutlet, das sie mit einem in einer Nib definierten UILabel verbindet. Nach dem Bbum blog post habe ich die Heapshot-Analyse verwendet und den obigen Code als ein Leck identifiziert. Fast jedes Mal, wenn ich auf eine neue Seite blättern, leckt titleLabel
ein bisschen:
Wenn ich das zweite Linie zu ändern:
self.titleLabel.text = @"Whatever";
Die undichte Stellen:
Ich bin verwirrt. Gibt -[UILabel text]
keine alten Werte frei, bevor neue Werte zugewiesen werden? Ich gehe nicht davon aus, dass ich etwas falsch machen muss. Warum ist dieses Leck?
Eine ganze Menge Zeug. CGPaths, '' s mit allerlei Zeug in ihnen. –
theory
könnte Cache-Akkretion sein. könnte ein echtes Leck sein. füge einen Fehler ein. – bbum