トピックに関する複数のスレッドを読みましたが、私の問題は引き続き発生します。 私はコードを次のように画像のサイズを変更していた場合:UIImageのサイズ変更時のメモリリーク
extension UIImage {
func thumbnailWithMaxSize(image:UIImage, maxSize: CGFloat) -> UIImage {
let width = image.size.width
let height = image.size.height
var sizeX: CGFloat = 0
var sizeY: CGFloat = 0
if width > height {
sizeX = maxSize
sizeY = maxSize * height/width
}
else {
sizeY = maxSize
sizeX = maxSize * width/height
}
UIGraphicsBeginImageContext(CGSize(width: sizeX, height: sizeY))
let rect = CGRect(x: 0.0, y: 0.0, width: sizeX, height: sizeY)
UIGraphicsBeginImageContext(rect.size)
draw(in: rect)
let thumbnail = UIGraphicsGetImageFromCurrentImageContext()!;
UIGraphicsEndImageContext()
return thumbnail
}
override func viewDidLoad() {
super.viewDidLoad()
let lionImage = UIImage(named: "lion.jpg")!
var thumb = UIImage()
autoreleasepool {
thumb = lionImage.thumbnailWithMaxSize(image: lionImage, maxSize: 2000)
}
myImageView.image = thumb
}
を...メモリが解放されません。そのため、複数のViewController(例:PageViewController)を操作すると、メモリ警告が表示され、最終的にアプリケーションがクラッシュします。 私はUIImage(contentsOfFile:path)経由でイメージを読み込もうとしましたが、成功しませんでした。 提案がありますか?
UIGraphicsGetImageFromCurrentImageContext()自動解放UIImageを返し :
それはそれでした!ありがとうございました。 – Thoms