本文共 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
这种情况一般是程序陷入死循环,注意检查代码
对于程序中分配内存空间的操作,需要检查参数(空间大小)的有效性,特别是这个参数来自其他模块的返回值,更应该注意