2012-03-21 15 views
6

Czy jest dostępne opakowanie lub inna wbudowana funkcja dostępna w RestKit do ładowania UIImage z NSURL asynchronicznie za pomocą wywołań zwrotnych lub bloków? Nie mogłem znaleźć takiej metody w dokumentach RestKit. Jeśli tak nie jest, jaka jest dobra strategia na wdrażanie leniwych załadowanych obrazów asynchronicznych z NSURLprzy użyciuRestKit w jak największym stopniu?Załaduj obrazy z NSURL async z pakietem RestKit

+0

Używam restkik do ładowania obrazów, do tego używam base64 ... tylko w ten sposób, który znalazłem. – Beber

Odpowiedz

5

Korzystanie RestKit można użyć RKRequest załadować dane dla obrazu w taki sposób:

RKRequest* request = [RKRequest requestWithURL: url]; 

request.onDidLoadResponse = ^(RKResponse* response) { 
    UIImage* image = [UIImage imageWithData: response.body]; 
    // do something interesting with the image 
}; 

request.onDidFailLoadWithError = ^(NSError* error) { 
    // handle failure to load image 
} 

[imageLoadingQueue addRequest: request]; 

zauważyć, że nawet w przypadku onDidLoadResponse może chcesz sprawdzić response aby upewnić się, że type o f dane są zgodne z oczekiwaniami. Kolejka ładowania obrazu używana powyżej może być utworzona w następujący sposób:

imageLoadingQueue = [RKRequestQueue requestQueueWithName: @"imageLoadingQueue"]; 
[imageLoadingQueue start]; 
+0

Niesamowita odpowiedź oparta na rozwiązaniach opartych na restkitach. dziękuję –

+0

Kompilator nie może znaleźć definicji RKRequest, gdy używam #import , czy RKRequest jest nadal dostępny w RestKit? – BergP

19

Nie wiesz o rozwiązanie RestKit, ale SDWebImage to biblioteka, która pozwoli Ci łatwo załadować obrazy asynchronicznie dodając kategorię do UIImageView, więc wszystko trzeba napisać jest to (na przykład):

[myImageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] 
       placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 
+3

Cóż, to naprawdę niesamowite ... Zrobiłem to i zacząłem w <5 minut bez zastanowienia. Będę akceptował, dopóki nie zobaczę, czy istnieją rozwiązania oparte na rozwiązaniach RestKit. –

+0

SDWebImage wykonuje również buforowanie obrazu. AFAIK, RestKit tego nie robi. –

+0

Myślę, że powinno to być oznaczone jako poprawna odpowiedź, nie widziałem żadnej implementacji RK, która jest zbliżona do funkcji SDWebImage. – eladleb