私はviewControllerにいくつかのデフォルトイメージを持っていて、ユーザーアクションの後に、外部イメージをロードしてデフォルトイメージを置き換えます。私は他の1UIImage refresh swift3
DispatchQueue.main.async {
self.getDataFromUrl(thumbURL, completion: { (data) in
let image = UIImage(data: data!)
self.cityImageView.image = image
print("img refreshed")
})
}
func getDataFromUrl(_ url:String, completion: @escaping ((_ data: Data?) -> Void)) {
URLSession.shared.dataTask(with: URL(string: url)!, completionHandler: { (data, response, error) in
if let newData = data {
completion(newData)
}
}) .resume()
}
へのViewControllerを変更しない限り
問題は、それは私が何をしないのですだから私は、img refreshed
をプリントを出すが、何も変わりませんフロントエンドで画像が、doesntのリフレッシュをロードしますか?
ありがとう、それでも動作しますが、それでもなぜダブルメインスレッドですか? –
そうですが、最初のGCDメインを削除できます。私はメソッドがサブスレッドで実行されると思います。クロージャーでメインスレッドを呼び出すだけです。 – Stark
私はあなたのコードをコピーして、それがUIKitを含むので、メインスレッドに補完ブロックを配置しました。なぜ最初の発送が必要なのか分かりません。 @starkがコメントしたように、あなたはおそらくそれを必要としません。 –