iOS Haneke - 内存警告然后崩溃
iOS Haneke - memory warning then crash
我正在开发一个使用 Haneke library 从 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!)
我不再收到内存警告并且它不会崩溃。
这是我开发或制作的第一个应用程序,解决此内存问题的最佳方法是什么?还是我可能错误地使用了 Haneke 库?
提前致谢,如果有帮助,以上是 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 方法,到目前为止我只是在处理图像。 self.results
从具有 AlamoFire Library
的 api 加载
我从原始代码中删除了 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!)
}
我正在开发一个使用 Haneke library 从 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!)
我不再收到内存警告并且它不会崩溃。
这是我开发或制作的第一个应用程序,解决此内存问题的最佳方法是什么?还是我可能错误地使用了 Haneke 库?
提前致谢,如果有帮助,以上是 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 方法,到目前为止我只是在处理图像。 self.results
从具有 AlamoFire Library
我从原始代码中删除了 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!)
}