iOS Haneke - предупреждение о памяти, затем сбой
Я занимаюсь разработкой приложения, которое извлекает изображения из Twitter с использованием библиотеки Haneke. Как только я получаю изображения, я отображаю их, используя UITableView. Я получаю 10 фотографий одновременно. Мое приложение загружается, но быстро падает из-за утечки памяти.
Код, который я использую для установки изображений, выглядит следующим образом.
var tweetImage = "http://pbs.twimg.com/media/CGe89eqWQAACBxR.jpg"
if let var urlString = tweetImage {
var url = NSURL(string: urlString)
cell.tweetImage?.sizeToFit()
cell.tweetImage?.hnk_setImageFromURL(url!)
}
Когда я закомментирую последнюю строку cell.tweetImage?.hnk_setImageURL(url!)
Я больше не получаю предупреждения памяти, и он не падает.
Это первое приложение, над которым я когда-либо работал или создавало, как лучше всего решить проблему с памятью? Или я неправильно использую библиотеку Haneke?
Заранее спасибо, выше это выход из инструментов, если это поможет.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell= tableView.dequeueReusableCellWithIdentifier("tweetCell", forIndexPath: indexPath) as! TweetTableViewCell
if (indexPath.row % 2 == 0){
cell.backgroundColor = UIColor.whiteColor()
}else{
cell.backgroundColor = UIColor(red: 0.973, green: 0.973, blue: 0.973, alpha: 1)
}
var row = self.results[indexPath.row]
var text = row["text"].string
var name = row["name"].string
var image = row["image"].string
var avatar = row["avatar"].string
var votes = row["rank"].int
var long = row["long"].string
var lat = row["lat"].string
var id = row["id"].int
var tweetImage = image == nil ? avatar : image
if let urlString = tweetImage {
var url = NSURL(string: urlString)
cell.tweetImage?.sizeToFit()
cell.tweetImage?.hnk_setImageFromURL(url!)
}
return cell
}
Выше мой метод cellForRowAtIndexPath, пока я просто работаю с изображениями. self.results
загружается из API с библиотекой AlamoFire
1 ответ
Я удалил cell.tweetImage?.sizeToFit()
от оригинального кода и теперь это работает. Не уверен, почему у меня был этот код там во-первых, но удаление его решило проблему утечки памяти. Если кто-нибудь знает, почему злоупотребление cell.tweetImage?.sizeToFit()
в этом контексте может вызвать утечку памяти, которую я хотел бы знать.
Правильный код:
var tweetImage = "http://pbs.twimg.com/media/CGe89eqWQAACBxR.jpg"
if let var urlString = tweetImage {
var url = NSURL(string: urlString)
cell.tweetImage?.hnk_setImageFromURL(url!)
}