目前开发的一个邮件附件功能,用的是Hessian 库(比较少见),在下载附件的时候,iPhone4 当附件超过3.5M左右大小的时候出现崩溃,iPad 1也在某一个大小的时候崩溃,在模拟器上不会出现,报的是“reason: '*** -[NSConcreteMutableData initWithCapacity:]: absurd capacity: 2147493200, maximum size: 2147483648 bytes'”;
新的设备,如在iPhone5 下测试,能下载3.5以上的附件。
该库应该用的是异步请求,报错位置在[data appenData:xxx]里面。
这个是硬件的限制吗?还是说下载的方式有问题,例如应该保存到本地文件之类的?
仔细用字典翻译下,按照这个说法是你的内存MutableData已经超过2G了,正常多半不会这么大,加个断点什么看看,是不是有什么扯淡的bug,比如一个内容重复添加了无数次等等
1楼 @tinyfool 它那个2147493200的数值是每次报错都不一样的,正在排查当中,发出来看看大家有没有解决过类似问题。之前还会报一个“'*** -[NSConcreteMutableData appendBytes:length:]: unable to allocate memory for length (702601)'”~所以我才怀疑是不是硬件的内存限制
2楼 @vikiliu0310 你仔细看后面的那个maximum size: 2147483648 bytes,这就是2G,懂不懂,你超过了内存极限了。
而且我基本上已经完全确定了你的问题了,你现在最重要的不是扯淡,而是实验,找到你的问题所在