Behauptungen von SDWebImage , dass AFNetworking den Cache nicht zwischenspeichert Image selbst, sondern nur die HTTP-Antwort, so dass SDWebImage das Bild schneller aus dem Cache abrufen und darstellen kann.
Wenn ich rein AFNetworking verwenden möchte, ist ein solcher Anspruch, richtig oder nicht, wirklich etwas, das sich leistungsmäßig bemerkbar macht? Ist es etwas, vor dem ich mich hüten sollte?
SDWebImage hat viel mehr Kontrolle über das Image-Caching. Es kann auf Festplatte oder Arbeitsspeicher zwischengespeichert werden.
AFNetworking setzt NSURLCache ein, um Bilder zwischen App-Starts persistent zu machen (und es ist nicht sehr zuverlässig), aber es ist großartig, wenn Sie nur während eines Laufs cachen müssen.
Bei beiden Lösungen wird während der Lebensdauer der App ein UIImage-Objekt im Speicher zwischengespeichert. Dies ist wichtig, da das Zwischenspeichern der NSData-Darstellung nicht schnell genug ist, um Bilder beim Scrollen durch eine Tabellenansicht reibungslos zu laden.
Zusammenfassung: Die Lösung von AFNetworking ist einfacher und funktioniert für die meisten Anwendungsfälle. Wenn Sie eine feinere Steuerung oder das Zwischenspeichern von Datenträgern benötigen, verwenden Sie SDWebImage, anstatt die Implementierung von AFNetworking zu ändern.
Ich habe beide verwendet:
SDWebImage ist viel schneller als UIImage + AFNetworking.
In UITableViewCell können Sie den signifikanten Unterschied in der Leistung sehen. Es hat viel Zeit in AFNetworking gekostet und der Code ist auch zu lang. SDWebImage ist viel schneller und kurz.
Verwenden Sie SDWebImage für eine bessere Bildleistung.
Es ist nicht wahr.
Wenn Sie sich den Code ansehen, können Sie das sehen die Kategorie UIImageView+AFNetworking
cache die UIImage
(mit NSCache
und urlRequest
als Schlüssel). Der Cache wird jedoch nicht auf die Festplatte geschrieben.
Tags und Links objective-c ios afnetworking afnetworking-2 sdwebimage