在我的应用程序中,我尝试创建NSData initWithContentsOfFile。在ios4(ipod gen 3)中,创建的nsdata没有错误。但是在ios5(ipod gen 4)应用程序崩溃了。我认为ipod 4有512mb的RAM,而ipod 3有256mb,那么为什么不能创建数据呢?
发布于 2012-02-17 10:57:32
仅仅因为设备有更多的RAM并不意味着你会自动在你的应用程序中获得更多的RAM。iOS尽可能高效地使用内存,它在你的iOS 5设备上崩溃的原因有很多,例如iOS 5可能比iOS 4使用更多的内存。接下来,你是否有相同数量的开放/后台应用程序在两个设备上运行?您还可以使用Instruments告诉您的应用程序有多少空闲/可用的内存。注意这一点。如果内存不足,唯一的解决方案就是使用更少的内存。
发布于 2012-02-17 11:02:51
这是有原因的--你想要的资源并不适合系统的设计。
看看是否可以用mmap代替这个文件。man mmap
请参阅+[NSData dataWithContentsOfFile:options:error:],NSData还支持使用自定义读取选项映射文件。
https://stackoverflow.com/questions/9321956
复制相似问题