iPhone - Memory Leak - NSData dataWithContentsOfUrl & UIWebView
Bitte Hilfe!!! Haben gestarrt, auf diese für 12 Stunden, und habe online geschaut und kann keine Lösung finden.
In meiner Anwendung verwende ich 2 UIView-Steuerelemente, die in separaten Seiten/Steuerungen:
- UIImageView (abrufen von Daten über
NSData dataWithContentsOfUrl) - UIWebView
Nur zu isolieren, der meinen code, und machen es einfacher zu erklären, ich habe eine neue Sicht, die sich aus dem Projekt "MyTestApplication"
1 - ich Addierte eine einfache NSData dataWithContentsOfUrl in der delegate-Funktion.
NSData *imageData = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"]];
(Nichts zum release hier, da es alle Verwendung von convenience-Funktionen)
alt-text http://img.skitch.com/20081110-j5tn5n7ixph95ys4rpchibaw5p.preview.jpg
2 - Führen Sie es, um zu überprüfen, keine Lecks (wie erwartet)
alt-text http://img.skitch.com/20081110-fy2qrkgy47hm4fe2f1aakd4muw.preview.jpg
3 - Öffnen Sie den ViewController.xib und fügen Sie einfach ein UIWebView aus der Bibliothek (keine Notwendigkeit, Draht)
alt-text http://img.skitch.com/20081110-d63c3yh1a1kqiciy73q8uyd68j.preview.jpg
4 - Führen Sie zum überprüfen von Undichtigkeiten! (warum???)
alt-text http://img.skitch.com/20081110-qtxcfwntbcc3csabda3r6nfjg6.preview.jpg
Was mache ich falsch? Bitte um Hilfe!!
Warum würde NSData Ursache Speicherverlust, wenn ich mit UIWebView? Ich verstehe es einfach nicht.
Danke.
InformationsquelleAutor | 2008-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich auch Probleme mit Leckagen aus NSData ist
dataWithContentsOfURL:
im iPhone-simulator. Ich fand, dass wenn ich die andere convenience-Methode (dataWithContentsOfURL:options:error:
) ich würde nicht den Speicherverlust.Mein code sah so etwas wie dieses:
Link zur Dokumentation
InformationsquelleAutor Sam
Ich denke, dass dies ist, was passiert:
Wenn ViewController.xib geladen wird, wird eine Instanz der UIWebView ist reserviert und initialisiert. Da bist du nicht die Verkabelung, die es sich überall, es ist nicht immer freigegeben. Ich glaube, Sie brauchen, um Draht it up und lassen Sie es in Ihre backing-View-Controller die Funktion dealloc. Ich erinnere mich, dass Sie manuell freigeben jedem Objekt, das ich in einer xib-Datei.
initWithNib
und werden freigegeben, wenn der view-controller freigegeben ist. und in jedem Fall, wenn dies wahr wäre, würde es zeigen auch die web-Ansicht und NSData wie geleckt, das ist nicht der FallInformationsquelleAutor Justin Weiss
Sind Sie mit Lecks auf dem Simulator? Wenn dem so ist, Nachteil coder. Der Simulator-Leck-Speicher, in dem die iPhone hardware nicht. Kein simulator ist immer eine perfekte Ergänzung für das genaue Verhalten des Codes auf dem Gerät.
Ich würde den test auf dem Gerät, wie gut. Ich habe gerade die gleiche Sache auf ein ähnliches Problem mit UITableViewController, die war undicht an der Sim, aber nicht am Telefon.
InformationsquelleAutor Genericrich
[NSData dataWithContentsOfURL:url options:0 error:&error]
hat mir nicht geholfen auf iOS8.Aber Folgendes funktioniert einwandfrei:
Produktion code müsste auch die Reaktionsgeschwindigkeit und Fehler-Parameter.
InformationsquelleAutor palob