Swift中的临时内存泄漏

时间:2017-07-07 19:05:14

标签: swift uiimage

我有一张由50 * 50像素的小图片组成的大图片。 n * m的小图片数量。你需要制作50 * 50的小副本 - >每张图片2 * 2。我启动代码 - 在模拟器上可以看到,在这个阶段它是1.3-1.4 GB的RAM,所以在真实设备上崩溃继续。 N = 200米= 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()

1 个答案:

答案 0 :(得分: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
      }
   }

这将在迭代的每一步释放内存。