UIImage内存问题

时间:2015-02-04 05:35:29

标签: xcode uitableview swift caching uiimage

我正在尝试使用Instagram上某个位置的照片创建一个应用程序。我已成功获得所有细节和图片网址,并试图将照片放入桌面视图中。这是我的代码。

        if (indexPath.row == 0) {
        var instagramCell1:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("instagramCell1") as UITableViewCell
        if var imageURLString = allDataArray[indexPath.section]["image_standard"] as NSString! {
            ImageLoader.sharedLoader.imageForUrl(imageURLString, completionHandler:{(image: UIImage?, url: String) in
            //IMAGE
            var cellImageView = UIImageView(image: image)
            cellImageView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenWidth)
            instagramCell1.selectionStyle = UITableViewCellSelectionStyle.None
            instagramCell1.addSubview(cellImageView)
        })
        }

        return instagramCell1
    }

要获取我正在使用的图像swift image loader。问题是当每个图像放入表中时,它似乎继续添加到内存(缓存?),即使向后滚动它也会继续添加更多内容。 (我发布了一张图片,但没有足够的代表)无论如何,有谁知道我做错了什么,

由于

1 个答案:

答案 0 :(得分:0)

我相信你每隔一段时间就会进行一次URL获取,这会导致很多网络工作。

至于内存,我不确定swift image loader是如何工作的,但如果我没弄错,则URL提取会导致内存问题。

您可以尝试在呈现UITableView之前将所有图像提取到某些数据结构中,并在cellForRowAtIndexPath:内部仅使用此数据结构将图像加载到单元格中