ios - UIImage 数组中数百张图片 - 内存泄漏

标签 ios arrays swift uiimage

我正在开发一个应用程序,它可以从录制的视频中创建帧:

var videoFrames:[UIImage] = [UIImage]()
func loadImages(){
    let generator = AVAssetImageGenerator(asset: asset)
    generator.generateCGImagesAsynchronously(forTimes: capturedFrames, completionHandler: {requestedTime, image, actualTime, result, error in
        DispatchQueue.main.async {
            if let image = image {
                self.videoFrames.append(UIImage(cgImage: image))                }
        }
    })
}

代码可以正常加载最多 +/- 300 张图像。 当有更多时,应用程序由于内存问题而终止 - 我对 swift 相当陌生 - 我怎样才能进一步调试它?

有没有更好的方法来存储这么多图像?分成几个数组可以解决这个问题吗?

我的目标是有效地存储数千张照片(最高 1920x1080) - 也许您可以推荐一些更好的方法?

最佳答案

将图像写入磁盘并维护包含图像名称和路径的数据库。

    if let image = image {
           let uiImage = UIImage(cgImage: image)
           let fileURL = URL(fileURLWithPath: ("__file_path__" + "\(actualTime).png"))
            uiImage.pngData()!.write(to: fileURL)
           //write filepath and image name to database
    }

关于ios - UIImage 数组中数百张图片 - 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48166386/

相关文章:

java - 打印出数组列表中的所有对象

ios - 如何从 FooterInSection 中的按钮向 UITableView 中的特定部分添加一行

ios - 动画 CALayer

javascript - For inside other for in javascript 无法正常工作

javascript - JQuery - 将twodim 数组传递给$.post 失败

iOS 钥匙串(keychain) - LAContext.setCredential(data, .applicationPassword) 在模拟器上返回 false

ios - 我怎样才能让这个GIF正确显示?

ios - 尝试转换为 NSFetchedResultsController "fatal error: unexpectedly found nil while unwrapping an Optional value"?

ios - iOS 上优秀的 KML 库

javascript - 我们如何从iOS SDK中不同目录中的html文件调用.js文件?