如何修复错误'现在没有可用于程序的内存:调用malloc不安全'?

时间:2011-12-06 12:49:17

标签: iphone objective-c ios cocoa-touch

如何调试并修复此错误

  

现在没有可用于程序的内存:调用malloc不安全

分析仪没有显示任何原因。

1 个答案:

答案 0 :(得分:4)

使用仪器检查由于保留但未泄漏的内存导致的泄漏和内存丢失。后者是未使用的内存,仍然指向。在仪器上的分配工具中使用快照。

如何使用“快照”查找内存褶皱,请参阅:bbum blog

基本上有一种方法是运行仪器分配工具,获取快照,运行代码直观和另一个快照重复3或4次。这将指示在迭代期间分配但未释放的内存。

要弄清楚披露的结果,以查看个别分配。

如果您需要查看对象使用仪器的保留,释放和自动释放的位置:

在仪器中运行,在分配中设置“记录参考计数”(您必须停止记录以设置选项)。导致选择器运行,停止记录,搜索那里的ivar(datePickerView),向下钻取,你将能够看到所有保留,释放和自动释放发生的位置。