gpt4 book ai didi

ios - 保存到 NSData 数组时出现内存警告

转载 作者:行者123 更新时间:2023-11-28 20:13:27 25 4
gpt4 key购买 nike

我正在构建一个允许用户使用设备相机连续拍摄多张照片的应用程序。

每次拍摄一张照片,它都会作为 NSData 变量发送到一个数组中。问题是:当数组达到 30 张图片时,它开始产生内存警告并最终导致应用程序崩溃。

当我离开那个 View 时,我将该数组保存到 NSUserDefaults,这也会导致内存警告和崩溃。

我需要能够保存大约 200 张照片的信息。如何在没有内存警告的情况下实现这一目标?

顺便说一句:我正在使用 Apple 的 SquareCam 示例代码用相机拍照。

提前致谢。

最佳答案

如果您不缩放/另存为 jpg,照片可能会很大。一个解决方案是立即将其保存在沙盒中的“磁盘”上(jpeg 格式无论如何都是一个好主意)并仅将您保存的文件的路径存储在您的数组中。

查看示例代码:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* imgName = [NSString stringWithFormat:@"%@.jpg", self.uid];
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:imgName];
NSData *webData = UIImageJPEGRepresentation(self.theImage, 0.5);
[webData writeToFile:imagePath atomically:YES];
self.imageURL = imagePath;

关于ios - 保存到 NSData 数组时出现内存警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19180016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com