2016-09-22 3 views
0

При загрузке некоторых изображений в мой QuicklookController используемая память никогда не освобождается Менеджером памяти. Пример:iOS 10 Использование памяти Quicklook

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 Мбайт, НО, когда плохо закрыл контроллер (кнопка «Назад»), память все еще используется. Таким образом, каждый клик стоит 10 Мбайт дополнительной ОЗУ (Достаточное значение, если изображение одно и то же, или новое)

Как я могу заставить, чтобы QLPreviewController освободил использованную память?

Edit: Кажется, что это уже докладывал:

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

Кажется быть исправлено с прошивкой 10.0.2