要顯示我對存儲陣列稱爲imgViews在我的兩個角度的UIImageView對象,我嘗試使用此代碼以異步方式下載圖片,爲他們:下載圖片需要很長的時間的UIImageView
func showPic(positionIndex: Int){
let urlStr = "https://www.friendesque.com/arranged/userpics/amir/1"
let url = NSURL(string: urlStr)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if error == nil {
self.imgViews[positionIndex].image = UIImage(data: data)
//self.imgViews[positionIndex].image = UIImage(named: "11665489_10154101221228009_2542754962143804380_n.jpg")
print("Loading Done...")
}
else{
print(error)
}
})
task.resume()
}
和我的viewDidLoad(),我有
showPic(0)
當我運行的代碼,我看到"Loading Done..."
立即這就意味着畫面已經加載,但它需要一個很長的時間(約1分鐘),爲的UIImageView到內一個切換到加載的圖片。這是一個非常小的圖片(〜15K),它不是一個處理時間問題。
我試過加載一個資源圖片(代碼的註釋部分)而不是下載的圖片,但它仍然很慢。
我真的很困惑。爲什麼在處理區塊內的圖像時速度如此之慢?
哦,這是一個很好的解釋。從未想過需要切換到主線程。謝謝。您建議的異步方法是什麼? – friendq
@friendq是的,它是異步的 –