DispatchQueueに関する質問があります。私のビューコントローラの1つでは、Webから画像をダウンロードしてUIImageViewに表示する必要があります。アプリケーションが画像をダウンロードしている間、私はDispatchQueueを使用してUIをブロックしないようにしています。以下のコードは動作しないようです。なぜ誰かが説明できますか?どのようにこれを正しく行うには?Swiftでデータをダウンロード中にUIをブロックしないでください
let store_id = self.store!._id
DispatchQueue.global().async {
let imageUrl = URL(string: "www.image.com")
self.storeImageData = imageUrl != nil ? try? Data(contentsOf:imageUrl!) : nil
if self.storeImageData != nil {
DispatchQueue.main.async {
self.topBackgroundImageView.image = UIImage(data:self.storeImageData!)
}
}
}
'てみてくださいを追加しますか?データ(contentsOf:imageUrl!) 'がデータを同期してダウンロードする代わりに、URLSessionまたはAlamofireを使用してコンテンツを非同期にダウンロードする必要があります。 – Lamar
@Lamarしかし、非同期ブロック内のデータをダウンロードしています。まだUIをブロックしていますか? – eChung00
はい、私は答えが – Lamar