ios - 图像数组导致内存问题

标签 ios arrays swift uiimage tvos

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

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

    imageView.animationImages = image

    imageView.animationDuration = 50
    imageView.startAnimating()

想知道是否有人可以提供一些建议。

最佳答案

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

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

因此,结合 Alexander 和 KKRocks 的正确答案:

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

let imageNames = (0...55).map { "\($0).JPG" }

您显示图像的位置:

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

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

Saving and Retrieving Files in User's Space.

关于ios - 图像数组导致内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45025158/

相关文章:

ios - 设置导航栏标题

ios - 使用 Swift 从 firebase 获取自定义单元类中的数据

Android Wear 设备作为 iBeacon

javascript - JQuery:将数字相乘到单独的数组,然后获得结果的总和

c - 在 C 中使用数组进行未知数量的输入?

swift - SwiftUI MVVM如何在功能后显示警报

ios - 如何为 iOS UIButton 对象实现此 UI/UX 设计

ios - 选择图像时如何获取图像名称

ios - YouTube链接无法打开应用(iOS/Chrome)

c++ - 初始化数组的更好方法