博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS Crash之NSMallocException
阅读量:4108 次
发布时间:2019-05-25

本文共 799 字,大约阅读时间需要 2 分钟。

这是内存不足的问题,无法分配足够的内存空间,比如需要分配的内存大小是一个不正常的值,比较巨大或者设备的内存空间不足以及耗尽.

问题实例

1. 分配的空间过大

NSMutableData *data = [NSMutableData alloc] initWithCapacity:1];NSInteger len = 2032935142;[data increaseLengthBy:len];
如果len太大,超过系统的可分配范围,则会出现
NSMallocException:unable to allocate memory for length XXXX.

2.  图像占用空间过大

SDWebImage中对图像数据的保存

-[SDImageCache storeImage:recalculateFromImage:imageData:forKey:toDisk:]

-[SDImageCache storeImage:recalculateFromImage:imageData:forKey:toDisk:]

如果imageData长度过长,就会出现NSMallocException

3. OOM问题

Terminating app due to uncaught exception 'NSMallocException', reason: 'Out of memory. We suggest restarting the application. If you have an unsaved document, create a backup copy in Finder, then try to save

这种情况一般是程序陷入死循环,注意检查代码

解决办法

对于程序中分配内存空间的操作,需要检查参数(空间大小)的有效性,特别是这个参数来自其他模块的返回值,更应该注意

你可能感兴趣的文章
程序员选择字体的标准是?
查看>>
「译」JavaScript 的怪癖 2:两个「空值」:undefined 和 null
查看>>
JavaScript 的怪癖 3:标准的等号 (==)
查看>>
回复:浮点数0.57 0.58 造出的坑爹问题
查看>>
薪资的意义
查看>>
【layoutit!】基于 bootstrap 实现可视化布局工具
查看>>
程序员在 5 月 20 日这天有什么特别的表白方式?
查看>>
MVC架构探究及其源码实现(5)-相关组件实现
查看>>
JUnit 测试建议
查看>>
Java EE 单元测试
查看>>
详解一下 javascript 中的比较
查看>>
10 个你需要了解的最佳 javascript 开发实践
查看>>
告别码农,成为真正的程序员
查看>>
Java NIO与IO的详细区别(通俗篇)
查看>>
图解 MVC 和 MVP 模式
查看>>
JavaScript Puzzlers 解密(一):为什么 ["1", "2", "3"].map(parseInt) 返回 [1, NaN, NaN]?...
查看>>
前端开发,从菜鸟到大牛的取经之路
查看>>
UC 开发语言的选择
查看>>
一道逻辑题:我拿走了哪个数
查看>>
JSON API:用 JSON 构建 API 的标准指南中文版
查看>>