我有一个应用程序,包含带有30个单元格的collectionview。它的细胞由图像和标签组成。我的问题是,当我加载该图像时,我的内存使用量为87 Mb。但如果我没有设置该图像,我的内存使用量仅为30 Mb。
我使用Moa异步加载图片。这是我的单元格初始化:
import UIKit
import moa
class ProductListItemCell: UICollectionViewCell {
@IBOutlet var imgProductItem: UIImageView!
@IBOutlet var titlleProductList: UILabel!
@IBOutlet var priceProductList: UILabel!
@IBOutlet var boldPriceProductList: UILabel!
func updateContent(product: Item) {
// if let imgUrl = product.picUrl {
// self.imgProductItem.moa.url = "http:\(imgUrl)"
// }
if let title = product.title {
self.titlleProductList.text = title
}
if let price = product.priceTag {
self.priceProductList.setStrikethrough(price)
}
if let boldPrice = product.price {
self.boldPriceProductList.text = boldPrice
}
}
}
这是我的cellForItemAtIndexPath
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if collectionView == myItemsCollectionView {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("firstCell", forIndexPath: indexPath) as! myCollectionViewCell
cell.updateContent(self.myItems.items[indexPath.item])
return cell
}
else {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("othersCell", forIndexPath: indexPath) as! myCollectionViewCell
cell.updateContent(others[indexPath.section].items[indexPath.item])
return cell
}
}
有没有办法下载图片和"压缩"它?或者我做错了吗?请告诉我。在这一点上被困住了几个星期。
注意:对于像我的应用程序这样的集合视图的某些应用程序,有多少内存使用标准? 30Mb属于"高"?我是记忆管理的新手。
非常感谢你。
答案 0 :(得分:1)
是的,您可以使用instrument来检查内存泄漏,并且图像加载导致的内存增加很可能是正确的。我以前遇到过这个问题。所以我只使用SDWebImage这样的图像缓存库来解决我的问题,因为它只需要第一次获取数据