我正在使用UIImageJPEGRepresentation
为照片库中的照片创建缩略图。在write方法中,我将返回的图像转换为数据。当我评论UIImagePNGRepresentation
和fun generateAndSaveThumbnail() {
let requestOptions = PHImageRequestOptions()
requestOptions.synchronous = true
requestOptions.deliveryMode = .FastFormat
requestOptions.networkAccessAllowed = true
for item in 0..<fetchResult.count {
if let asset = fetchResult[item] as? PHAsset {
if let fileName = asset.valueForKey("filename") as? String {
if fileExistAtPath(path) == false {
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: thumbnailSize, contentMode: PHImageContentMode.AspectFill, options: requestOptions, resultHandler: { (image, _) in
MyFileManager().writeThumbnailImage(image, imageName: fileName)
})
} else {
//File exist at path
}
} else {
//File name missing
}
} else {
//asset error
}
}
}
func writeThumbnailImage(image: UIImage?, imageName: String) -> Bool {
if image == nil {
return false
}
var imageData: NSData? = nil
if imageName.capitalizedString.containsString(kJPGExt) {
print("JPG Image conversion")
imageData = UIImageJPEGRepresentation(image!, 0.8)
} else {
print("PNG Image conversion")
imageData = UIImagePNGRepresentation(image!)
}
if imageData != nil {
let path = getFilePathForType(mediaType, imageName: imageName)
return writeDataToPath(path, data: imageData)
}
return false
}
时,内存是稳定的。
在iOS 10.0及更高版本的iPad中,我观察到巨大的内存消耗,最终在没有任何日志的情况下崩溃。对于所有其他OS版本(低于10.0),内存稳定且不会发现崩溃。
我在
下面添加了一个示例代码Message from debugger: Terminated due to memory issue
内存不断上升,最终在控制台中收到以下消息
mounted
感谢任何帮助。谢谢。