在我的应用程序中,我尝试创建[NSData initWithContentsOfFile]。在ios4(ipod gen 3)中创建的nsdata没有错误。但是在ios5(ipod gen 4)应用程序崩溃了。我认为ipod 4有512mb的RAM,而ipod 3是256mb,所以为什么不能创建数据。
答案 0 :(得分:1)
这是一个限制因素 - 您想要的资源不适合系统的设计。
看看你是否可以mmap该文件。 man mmap
NSData
还支持使用自定义阅读选项映射文件,请参阅+[NSData dataWithContentsOfFile:options:error:]
。
答案 1 :(得分:0)
仅仅因为设备拥有更多内存并不意味着您将自动在应用中获得更多可用内存。 iOS尽可能高效地使用内存,并且有很多原因可能会导致iOS 5设备崩溃,例如iOS 5可能会使用比iOS 4更多的内存。接下来,您是否拥有相同数量的打开/后台应用程序在两台设备上运行?您还可以使用仪器了解应用程序可用/可用的内存量。留意这一点。如果内存不足,唯一的解决方案是使用更少的内存。