Ich versuche, Bilder, die aus der Web-URL extrahiert wurden, in die Bildansicht jeder Zelle zu laden.Langsames Laden von Bildern in UITableViewController, extrahiert aus URL-String
Wenn jedoch i blättern in der Tabelle auf dem Bildschirm, wie ich es glauben friert versucht, die Bilder für jede Zelle 1 von 1.
Gibt es eine Weise, die ich es asynchron machen zu greifen? Die zur Verfügung stehenden Ressourcen gibt derzeit veraltete oder inkompatible (Lauf obj c), wie ich laufen auf Swift 2
Der entsprechende Code, den ich in der Tabelle View-Controller bin mit unter:
override func tableView(newsFeedTableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let blogPost: BlogPost = blogPosts[indexPath.row]
cell.textLabel?.text = blogPost.postTitle
let unformattedDate = blogPost.postDate
//FORMATTING: Splitting of raw data into arrays based on delimiter '+" to print only useful information
let postDateArr = unformattedDate.characters.split{$0 == "+"}.map(String.init)
cell.detailTextLabel?.text = postDateArr[0]
let url = NSURL(string: blogPost.postImageUrl)
let data = NSData(contentsOfURL: url!)
cell.imageView!.image = UIImage(data: data!)//WHY SO SLOW!?
print(blogPost.postImageUrl)
return cell
}
Haben Sie versucht, mit 'DataTaskWithRequest'? Dadurch wird Ihr Ladevorgang vollständig "Asynchron" und Ihre Benutzeroberfläche wird nicht eingefroren. Sie können auch [Alamofire] (https://github.com/Alamofire/Alamofire) verwenden, um asynchrone Aufrufe zu erstellen. Hör zu. – Dershowitz123