2017-09-08 11 views
1

현재 아래 그림과 같이 Firebase Storage의 이미지 파일을 UICollectionView에 다운로드하고 있습니다. 축소판 중 하나를 누르면 응용 프로그램이 다른 파일 (UIViewController)을 검색하여 Firebase에서 더 많은 이미지를 다운로드합니다 저장. 현재 앱에서 모든 미리보기 이미지의 다운로드가 완료 될 때까지 기다렸다가 다음 이미지를 UIViewController에 다운로드합니다. UIViewController에서 새 이미지의 우선 순위를 높이거나 다른 모든 다운로드를 취소하여 새 이미지를 즉시 시작할 수 있습니까?Firebase 다운로드 작업 대기열 Swift

var imageRef = storageRef.child("Thumbnails/\(itemID).jpg") 
imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error 
    if let error = error { 
     // Uh-oh, an error occurred! 
     print("Error: \(error.localizedDescription)") 
    } else { 
     let image = UIImage(data: data!) 
     self.newsNameArray.append(name) 
     self.newsImageArray.append(image!) 
     self.newsBarCollectionView?.reloadData()       
     } 
} 

감사합니다

당신은 이런 StorageDownloadTask을 참조하여 얻을 수

답변

1

: 배열

var allTasks: [StorageDownloadTask] = [] 

var imageRef = storageRef.child("Thumbnails/\(itemID).jpg") 
let downloadTask = imageRef.getData(maxSize: 10 * 1024 * 1024) { data, error 
    if let error = error { 
     // Uh-oh, an error occurred! 
     print("Error: \(error.localizedDescription)") 
    } else { 
     let image = UIImage(data: data!) 
     self.newsNameArray.append(name) 
     self.newsImageArray.append(image!) 
     self.newsBarCollectionView?.reloadData()       
     } 
} 

스토어 당신의 downloadTasks을하고 새로운 이미지를 다운로드하기 전에 모든 작업을 취소

allTasks.append(downloadTask) 

... 

for task in allTasks { 
    task.cancel() 
}