Я пытаюсь получить фотографию профиля пользователя, как это внутри cellForRowAtIndexPath
метод:
let profileImage = UIImage(data: NSData(contentsOfURL: NSURL(string:"http://website.com/something/somethingelse-pic/\(self.userArray[indexPath.row]).jpg")!)!)
Мне просто интересно, есть ли лучший и более быстрый способ сделать это, потому что это, кажется, загружается довольно медленно и медленно.
Любая помощь будет оценена !!
Вы можете использовать Async для загрузки изображения с URL
let request: NSURLRequest = NSURLRequest(URL: imgURL)
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue, completionHandler: { (response, data, error) -> Void in
if error == nil {
// Convert the downloaded data in to a UIImage object
let image = UIImage(data: data)
// Store the image in to our cache
self.imageCache[urlString] = image
// Update the cell
dispatch_async(dispatch_get_main_queue(), {
if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) {
cellToUpdate.imageView?.image = image
}
})
}
else {
// println("Error: \(error.localizedDescription)")
}
})
Ref: http://jamesonquave.com/blog/developing-ios-apps-using-swift-part-5-async-image-loading-and-caching/
Других решений пока нет …