私は非常に単純な iOS アプリを持っています - この TableView には TableView とカスタム セルのリストがあります。各セルには ImageView ( downloadedFromメソッドを使用して画像を読み込む) があります。
Xcode を 8 バージョンに更新し、プロジェクトを Swift 2.3 に変換した後、非常に興味深い結果が得られました - TableView 内のアイテムのリストをリロードします - 画面上の最初のセルに画像がなく、下にスクロールし始めると他の画像が表示されます正常にロードされます。スクロールして一番上に戻ると、すべての画像に問題はありません。
SDWebImageというライブラリへの画像の読み込み方法も変えてみましたが結果は同じです。なにが問題ですか?
extension UIImageView {
func downloadedFrom(link link:String, contentMode mode: UIViewContentMode) {
guard
let url = NSURL(string: link)
else {return}
contentMode = mode
NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, response, error) -> Void in
guard
let httpURLResponse = response as? NSHTTPURLResponse where httpURLResponse.statusCode == 200,
let mimeType = response?.MIMEType where mimeType.hasPrefix("image"),
let data = data where error == nil,
let image = UIImage(data: data)
else { return }
dispatch_async(dispatch_get_main_queue()) { () -> Void in
self.image = image
}
}).resume()
}}