2012-03-21 14 views
6

RestKit中是否有包裝或某種內置功能可用於從NSURL異步使用回調或塊加載UIImage?我在RestKit文檔中找不到這樣的方法。如果沒有,儘可能多地使用RestKit來實現來自NSURL的延遲加載的異步圖像的好策略是什麼?使用RestKit加載來自NSURL async的圖像

+0

我使用restkik加載圖像,爲此我使用base64 ...只有我發現的方式。 – Beber 2012-03-21 08:32:49

回答

5

使用RestKit可以使用RKRequest加載的方式,如對圖像數據:

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]; 

注意,即使在onDidLoadResponse情況下,你可能要檢查response以確保O型f數據是你所期望的。上面使用的圖像加載隊列可以像這樣創建:

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

基於restkit的真棒答案。謝謝 – 2012-08-20 19:25:27

+0

當我使用#import 時,編譯器找不到RKRequest的定義,RKRequest在RestKit中仍然可用嗎? – BergP 2015-04-04 19:40:43

19

不知道有關RestKit解決方案,但SDWebImage是,可以讓你輕鬆地添加類別UIImageView的異步加載圖片庫,所以你必須寫是這樣的(例如):

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

好吧,那真是太棒了......我在沒有想到的情況下在5分鐘內完成了它。我會堅持接受,直到我看到是否有任何基於RestKit的解決方案。 – 2012-03-21 06:47:08

+0

SDWebImage也可以進行圖像緩存。 AFAIK,RestKit沒有。 – 2012-08-20 03:27:45

+0

我認爲這應該被標記爲正確的答案,沒有看到任何接近SDWebImage功能的RK實現。 – eladleb 2013-04-21 00:16:07