iOs在内存管理中使用非连续或连续分配吗?假设用户分配的内存超过128MB,应用程序会被关闭吗?或者,内存将由iOS管理,就好像用户在释放方法中分配内存并错过释放一样?在使用定义良好的数据 struct 分配的应用程序中,是否可以使用超过120MB的数据?

推荐答案

来自单独内存分配的块不会连续分配(分别调用alloc、malloc、new等).否则,它们将被连续分配(从对malloc的同一个调用中,例如new float[30]).据苹果称,当你使用超过20mb的内存时,你的应用程序可能会因内存使用而关闭.然而在实践中,你可以得到大约...

  • iPad 2上的260 MB内存(感谢RobCroll)
  • 总内存为512 Mb的设备(iPhone 4、iPod touch 4g)上的内存为170-180MB
  • 有256MB内存的设备(iPad、iPhone 3gs、iPod touch 3g)上有40-80MB内存
  • 只有128MB内存(IPhone 3g、IPhone 2g、iPod touch 1g-2g)的设备上有25MB的内存

如果移动应用程序真的"需要"那么多ram,那么应该将数据保存到临时文件中,并对其进行处理.一种简单的方法是使用内存映射文件.

Objective-c相关问答推荐

如何删除Objective-C中未定义的符号&错误?

Objective-C - 将浮点数转换为字符串的其他方法

如何使用 NSFileManager 删除目录及其内容

Objective-C 中的正式协议和非正式协议有什么区别?

NSLocale 和国家名称

单元测试私有方法 - 目标 C

使用对象引用的 NSArray,我是显式释放数组中的所有对象还是仅释放数组本身?

如何在 iOS SDK 中使用语音识别?

如何以编程方式退出 mac 应用程序?

如何将日期字符串解析为 iOS 中的 NSDate 对象?

添加自定义 initWith?

如何将小时数添加到 NSDate?

UIWebView didFinishLoading 多次触发

iOS是静态框架还是动态框架?

遍历 NSString 中所有字符的最有效方法

UICollectionView 更新单个单元格

我可以在 Objective-C switch 语句中声明变量吗?

在 UITableView 的 iOS 文档目录中列出保存的文件?

CMTime 秒输出

Facebook SDK 登录永远不会在 iOS 9 上回调我的应用程序