将一些图像加载到我的QuicklookController时,内存管理永远不会释放使用过的内存。例如:
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let photoFile = photos[indexPath.row] as Photo
currentFilePath = photoFile.filePath
let preview = QLPreviewController()
preview.dataSource = self
self.navigationController?.pushViewController(preview, animated: false)
}
func documentsDirectoryURL() -> NSURL {
let manager = NSFileManager.defaultManager()
let URLs = manager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
return URLs[0]
}
func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem {
return documentsDirectoryURL().URLByAppendingPathComponent(currentFilePath)
}
这里加载图像。图像大小约为200千字节,大小约为2500x1250像素。内存增加了大约10 MB,但是当关闭控制器(后退按钮)时仍然使用内存。因此,每次点击都会花费10 MB的额外RAM(如果图像相同或者是新的,则为Doesent问题)
我如何强制QLPreviewController
释放已用过的内存?
编辑:似乎已经报告过:
https://github.com/jcamiel/radars/blob/6b02382c08cdd9312df325a7a08ea9efeec5727b/28318213/radar.md
https://forums.developer.apple.com/thread/63020
EDIT2:
现在使用2台iPad Pro 9.7进行测试
首先,iOS 10.0.1 - >内存如上所述增加。 二,iOS 9.3.5 - >没有内存问题
所以看起来它真的只是一个iOS 10 Bug ......
答案 0 :(得分:0)
似乎已在iOS 10.0.2中修复