图像阵列导致内存问题

Image Array Causing memory Issue

目前正在创建一个基本的图像幻灯片应用程序,为此我创建了一个 UIImage 数组并使用以下代码调用它们。

let imageNames = (0...50).map
    {
        "\([=10=]).JPG"
    }
    let image = UIImage(named: imageNames[0])

    imageView.animationImages = image

    imageView.animationDuration = 50
    imageView.startAnimating()

想知道是否有人能够提供一些建议。

您需要在数组中添加图像名称而不是 UIImage 。

let images: [String] = [
        "0.JPG",
         "1.JPG")!]

从数组的字符串中获取图像

let image = UIImage(named: images[0])

问题不在于图像在磁盘上占用了多少内存,而在于处理屏幕上所有像素所需的内存。在使用图像之前,您实际上并不需要存储它们。一张小于 1MB 的图片加载速度非常快。

相反,您只需要保留图像的路径,并且仅当您到达显示图像的代码时,然后加载并显示它。

因此,结合 Alexander 和 KKRocks 的中肯答案:

在 class 的顶部,定义文件名数组:

let imageNames = (0...55).map { "\([=10=]).JPG" }

您显示图片的位置:

if let image = UIImage(named: images[0]) {
   ... the code that is blowing up ...
}

如果您不确定如何保存和检索文件,请参阅我最近就该主题给出的回答: