2011-11-10 60 views
0

我使用ASIHTTPRequest從WCF中提取JSON數據。然後循環訪問數據並從URL中獲取圖像以顯示UITableView。 3G網絡的這種做法非常緩慢。有什麼我可以做得更快!如何在iPhone中更快加載圖像?

下面是一個示例代碼

這個代碼PICE將抓住從URL的圖像。這是在tableView cellFroRowAtIndexPath:

// Add image 
NSString* trimmedCode = [[courseList objectAtIndex:indexPath.row] stringByReplacingOccurrencesOfString:@" " withString:@""]; 
NSString *imageName = [NSString stringWithFormat:@"http://www.someURL.com/images/%@.png", trimmedCode]; 
NSURL *url = [NSURL URLWithString: imageName]; 
cell.myImage.image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; 

return cell; 

任何幫助嗎?

回答

0

我在Stackoverflow上發現了一個類似的問題,它解決了我的答案。我的問題更具體的答案是,我正在使用SDWebImage庫。這是更簡單的使用!感謝您的支持。

0

3G響應時間慢。它被設計爲在文件啓動後合理快速地發送文件。但是每個http請求都會導致嚴重的延遲。

這就是爲什麼你沒有看到3G上的實時動作多人遊戲。

+0

那麼,有什麼辦法可以在手前背景緩存數據(圖像)? – HardCode

+0

也許你可以將圖像打包在服務器上的某種存檔中,這樣你只需執行一個http請求即可獲得全部圖像。或者你可以寫一個單獨的線程來做你的循環來異步獲取圖像。 – Almo

1

看看下面的文章。它顯示了你將如何加載每一行的數據,然後在後臺設置加載的圖像。

Loading images async

+0

我發現從蘋果LazyTableimages另一個:http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html我現在測試兩個... – HardCode

0

,我用一個偉大的圖書館是EGOPhotoViewer。您可以異步加載圖像,並自動爲您緩存圖像,因此您無需再次下載它們。最好的部分是,你可以有一個佔位符圖像顯示,直到你想要的圖像下載。

您可以在這裏找到庫:https://github.com/enormego/PhotoViewer

注:我有創造或該庫的創造者沒有隸屬關係。這只是一個基於three20項目的真棒。