首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >保存到NSData数组时的内存警告

保存到NSData数组时的内存警告
EN

Stack Overflow用户
提问于 2013-10-04 03:24:12
回答 2查看 479关注 0票数 0

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

每次拍摄图片时,都会将其作为NSData变量发送到数组中。问题是:当数组得到大约30张图片时,它开始创建内存警告,并最终导致应用程序崩溃。

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

我需要能够保存大约200张照片的信息。在没有内存警告的情况下,我如何做到这一点?

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

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-04 03:50:33

如果您不缩放/保存为jpg,一张照片可能会相当大。一个解决方案是立即将它保存在沙箱中的“磁盘”上(无论如何,使用jpeg格式是个好主意),并且只在数组中存储您保存的文件的路径。

参见示例代码:

代码语言:javascript
运行
AI代码解释
复制
    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;
票数 2
EN

Stack Overflow用户

发布于 2013-10-04 03:56:59

请不要保存图片,只保存image.so的路径,您可以更好地管理它们,并更好地为您的应用程序。性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19180016

复制
相关文章
关于内存警告
UIKIT_EXTERN NSString *const UIApplicationDidReceiveMemoryWarningNotification;
全栈程序员站长
2022/07/08
7110
NSData 与 NSString,Byte数组,UIImage 的相互转换
NSData-> NSString NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding]; NSString->NSData NSString *aString = @"1234abcd"; NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding]; 2.NSData 与 Byte NSData-> Byte数组 N
好派笔记
2021/10/29
1.1K0
CDH内存调拨过度警告分析
Hadoop应用程序或者Yarn的作业随机的出现OutOfMemory(OOM),在Cloudera Manager界面显示如下警告:
Fayson
2018/03/30
8K0
MySQL内存到底消耗在哪里?
一说起MySQL使用的内存,你可能会想到各种buffer,最著名的莫过于innodb buffer pool了,它是内存使用的大户,还有sort buffer等等。除了这些buffer之外,可能还有一些细枝末节,今天我们来总结一下。
AsiaYe
2021/12/04
3K0
创建redis cluster时,有警告提示
  http://www.php-master.com/post/325868.html
黑泽君
2018/12/06
7440
Linux Used内存到底哪里去了?
这个问题不止一个同学遇到过了,之前小王同学也遇到这个问题,内存的计算总是一个迷糊账。我们今天来把它算个清楚下!
民工哥
2020/09/15
3.4K0
Linux Used内存到底哪里去了?
内存中的数组
1、数组是一种引用数据类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。 2、引用变量是访问真实对象的根本方式,如果程序中要访问数组对象本身,则只能通过这个数组的引用变量来访问它。 3、实际的数组对象被存储在堆内存中;如果引用该数组对象的数组引用变量是一个局部变量,那么它被存储在栈内存中。
程序员云帆哥
2022/05/12
1.1K0
内存中的数组
NSData使用与分析
2014-08-10 17:19:46.795 TestNSData&NSDate[1214:303] 不可变的data1的字节是:<41204320 73747269 6e672100>
用户8671053
2021/10/31
6080
技术分享 | MySQL 编写脚本时避免烦人的警告
资深数据库专家,专研 MySQL 十余年。擅长 MySQL、PostgreSQL、MongoDB 等开源数据库相关的备份恢复、SQL 调优、监控运维、高可用架构设计等。目前任职于爱可生,为各大运营商及银行金融企业提供 MySQL 相关技术支持、MySQL 相关课程培训等工作。
爱可生开源社区
2022/09/26
5470
技术分享 | MySQL 编写脚本时避免烦人的警告
有客户在编写前期数据库安全规范时,就如何更安全的在 Linux Shell 端操作 MySQL 这一块,让我们帮忙出一份详尽的说明文档。其中有一项内容就是如何在 Linux Shell 下调用 MySQL 各种命令行工具时屏蔽掉烦人的告警信息输出,诸如下面这样:
爱可生开源社区
2022/06/16
6270
java——内存中的数组
2、arr=new int[5],这段代码执行完成后,系统会在堆内存中为该数组分配一块内存空间,并初始化值0,如下图所示:
说故事的五公子
2019/09/11
1.1K0
java——内存中的数组
对象数组的内存图解
对象数组的概述和案例(掌握) (1)对象数组的概述     数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)对象数组的案例     我有5个学生,请把这个5个学生的信息存储到数组中,并遍历学生数组,获取得到每一个学生的信息。
黑泽君
2018/10/12
1.8K0
2.0时代,如何做好等保?
等保全称叫信息安全等级保护,是对信息和信息载体按照重要性等级分级别进行保护的一种工作。今天我们就来说一说等保的历史发展,以及个人信息保护相关的一些内容。 在等保历史最初的十年时间内,大家对于等级如何划分感到很头疼。但是在2003年27号文件发布后,大家便想通了,这个等级是重要性的等级,重要性由系统在国家安全、社会秩序、公共利益、公民法人的重要性来决定。等级不是围绕着简单的一个技术来划分的,而是这个系统或者是系统所承载的应用在社会上的地位、社会的属性来决定的。 2017年6月1日,《网络安全法》诞生,在法律
腾讯产业互联网学堂1
2023/05/29
3740
2.0时代,如何做好等保?
2.0时代,如何做好等保?
等保全称叫信息安全等级保护,是对信息和信息载体按照重要性等级分级别进行保护的一种工作。今天我们就来说一说等保的历史发展,以及个人信息保护相关的一些内容。
云大学小编
2020/06/05
8660
2.0时代,如何做好等保?
Hive语法内关于With as 的数据是否会缓存到内存分析
  WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断可以被后面的SQL语句引用,从而使SQL语句的可读性更高。
挽风
2021/12/07
1.3K0
Java中数组的内存分析
墨白在文末给大家准备了程序员的适用壁纸,需要的小伙伴自取,今天的内容是给大家聊聊Java中数组的内存分析和原理,很多朋友可能已经忘记了,毕竟这是非常基础的点了,这次算是给大家复习了吧!
框架师
2019/12/03
7500
Java中数组的内存分析
iOS缓存 NSCache详解及SDWebImage缓存策略源码分析你要知道的NSCache都在这里
你要知道的NSCache都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本篇文章首先会详细讲解NSCache的基本使用,NSCache是Foundation框架提供的缓存类的实现,使用方式类似于可变字典,由于NSMutableDictionary的存在,很多人在实现缓存时都会使用可变字典,但NSCache在实现缓存功能时比可变字典更方便,最重要的是它是线程安全的,而NSMutableDictionary不是线程安全的,在多线程环境下
WWWWDotPNG
2018/04/10
3.9K1
iOS缓存 NSCache详解及SDWebImage缓存策略源码分析你要知道的NSCache都在这里
java数组内存结构
Java中的数组存储两种东西之一:要么是原始值(int, char, ...),或是引用(即指针)。
lovelife110
2021/01/14
6130
java数组内存结构
数组内存工作原理
内存是计算机临时存储数据的区域,我们会将内存在逻辑上分配成不同区域方便对数据进行分类高效管理。
星哥玩云
2022/09/14
3090
数组内存工作原理
【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )
数组变量 占用的 内存大小 , 就是 数组本身的内存大小 ; 指针变量 占用的 内存大小 只有
韩曙亮
2023/03/29
3.5K0

相似问题

将图像作为nsdata保存到plist并接收内存警告。

23

使用NSData时出现内存问题

10

NSData内存泄漏

31

NSData导致的内存泄漏

25

[NSData dataWithContentsOfFile]的内存问题

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文