我有一個collectionview,我試圖做一個異步下載,我在cellforItemIndexPath下載一張照片。Swift - 異步顯示圖片下載
我試圖在下載照片後在集合中顯示圖像。
現在照片下載並全部出現。
我嘗試了幾個解決方案(包括下面的一個),但他們都下載了照片並立即顯示。
無論如何要顯示每張照片,因爲它是下載?
照片被下載到Flickr.downloadPhoto中並存儲在名爲photo的核心數據對象中。
我想另一件事是使用一個回調的downloadPhoto,但沒有奏效
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if(photo.downloaded==0) {
Flickr.downloadPhoto(photo, context: self.managedContext) { (success, status) in
dispatch_async(dispatch_get_main_queue()) {
self.appDelegate.saveContext()
cell.photoImageOutlet.image = UIImage(data: photo.image!)
self.collectionViewOutlet.reloadData()
}
}
}
return cell
}
感謝您的回覆@Lil_whale;我能夠用你的建議完成任務(後臺隊列和主隊列),我必須將更多東西移到主隊列中(核心數據的線程安全),但是你的概念是正確的。 –