2017-07-07 14 views
-2

私は50×50ピクセルの小さな画像で構成される大きな画像を持っています。小さな画像の数n * m。写真1枚ごとに50 * 50 * 2 * 2の小さなコピーを作成する必要があります。私はコードを起動します - シミュレータでは、この段階では1.3-1.4GBのRAMであることがわかります。実際のデバイスではクラッシュが発生します。 N = 200、M = 180スウィフトの一時的なメモリリーク

UIGraphicsBeginImageContextWithOptions (CGSize (width: n * 2, height: m * 2), false, 0.0) var cellImage: UIImage? For y in 0 .. 



UIGraphicsBeginImageContextWithOptions(CGSize(width: n*2, height: m*2), false, 0.0) 
var cellImage : UIImage? 
for y in 0..<n { 
    for x in 0..<m { 
       cellImage = вызов функции для получения картинки 50*50... 
       cellImage?.draw(in: CGRect(x: y*2, y: x*2, width: 2, height: 2)) 
       cellImage = nil 
    } 
} 

     // End 
     miniViewImage.image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
+0

このサイトでは、英語を言語として使用しています。 – Artem

+2

https://ru.stackoverflow.com –

答えて

0

改訂次のよう

for x in 0..<m { 
     autoreleasepool { 
       cellImage = вызов функции для получения картинки 50*50... 
       cellImage?.draw(in: CGRect(x: y*2, y: x*2, width: 2, height: 2)) 
       cellImage = nil 
     } 
    } 

この解放するメモリ反復の各ステップ。