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!)
}
Другие вопросы по тегам