当我在Swift中使用PHAsset时,我总是得到内存警告

时间:2016-08-03 14:33:42

标签: ios swift memory phasset

当我使用媒体库时,我收到内存警告。它将我的相机胶卷中的所有图像/视频提取到获取结果中,您可以使用UIPageControl在内容中滑动。
当我使用“仪器”时,它显示: enter image description here

这是一些代码

func showImage(obj: AnyObject!) {
    var image = UIImage()
    manager.requestImageForAsset(obj as! PHAsset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFit, options: photoOptions, resultHandler:
        {(result, info)->Void in
            image = result!
            self.imageView.image = image
            self.imageView.frame = self.contentView.bounds
            self.contentView.addSubview(self.imageView)
    })
}

在这里我将媒体提取到我的PHFetch结果:

fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]

    PHAsset.fetchAssetsWithMediaType(.Image, options: fetchOptions)
    PHAsset.fetchAssetsWithMediaType(.Video, options: fetchOptions)

    let media = PHAsset.fetchAssetsWithOptions(fetchOptions)

我完全不知道这意味着什么,因为我是XCode和Swift的新手。那可能是什么原因呢? 提前致谢

1 个答案:

答案 0 :(得分:0)

你有近1GB的CGImage分配。您应该尝试重用单元格或图像视图,释放未使用的图像。仅当您要在屏幕上显示图像时,还要获取图像,不要获取整个相机胶卷。如果您不使用全屏图像,则应显示缩略图。