![]() |
1
4
这个方法在循环中经常被调用吗?只有当自动释放对象所在的NSautoReleasePool被释放时,自动释放的对象才会被释放。据我所知,会创建默认的自动释放池并释放每个事件循环。在单个事件循环过程中,可能创建了太多自动释放的对象。解决方案是在适当的地方创建自己的nsautoreleasepool,然后释放它来清除自动释放的对象。一个极端的例子说明了这一点:
在该示例中,当前池每10000次迭代发布一次,并创建一个新的池。您可以在 Memory Management Programming Guide 有关自动释放池的部分。 |
![]() |
2
0
无论如何,您需要返回一个自动释放的对象,所以对于结果字符串您实际上不应该做任何事情。我看不到任何与内存相关的错误,但您的代码肯定比需要的要详细。请记住,在objective-c中,如果对nil调用方法,则返回nil(对于整数,返回0,但是 不 对于浮点值)。您可以去掉所有那些if语句和这两个返回路径,您的代码仍将以相同的方式工作。另外,我只使用alloc而不是allocWithZone。 |
![]() |
3
0
我对这个不是百分之百的。我也在学习Mac/iPhone开发。但是您可以使用自动释放池来帮助管理内存。它用于解决释放问题。 这是一篇关于 memory management . 查看左侧菜单。 |
![]() |
TheKing · 为什么数组的地址可以有负值? 3 年前 |
![]() |
yurnero · MATLAB:“加载”一个快速访问功能 7 年前 |
![]() |
joe · 一页可以同时在两个工作集中吗? 7 年前 |
![]() |
Jaques · “.exe”已触发断点 7 年前 |
![]() |
adn bps · 在函数中修改变量的高效内存方法 7 年前 |
![]() |
Gauraang Khurana · C语言中分段错误的不稳定行为 7 年前 |
![]() |
Rajesh K · 如何查找设备中存在的广告垃圾? 7 年前 |