0

ここに画像の説明を入力

Haneke ライブラリを使用して Twitter から画像を取得するアプリを開発しています。画像を取得したら、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!)と、メモリ警告が表示されなくなり、クラッシュしなくなりました。

これは私がこれまでに取り組んだ、または作成した最初のアプリです。このメモリの問題を解決するにはどうすればよいですか? それとも、ハネケライブラリの使い方が間違っているのでしょうか?

事前に感謝します。上記は Instruments からの出力です。

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 メソッドです。これまでのところ、画像を操作しているだけです。AlamoFire ライブラリself.resultsを使用して API からロードされます

4

1 に答える 1

0

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!)
}
于 2015-06-04T17:33:34.137 に答える