我正在寻找一个主要的来源(或者一个非常好的解释)来支持这样的说法,即在为iphone编写软件时使用autorelease
是危险的或过于昂贵的。
有几位开发人员提出了这种说法,我甚至听说苹果不推荐,但我还没有找到任何具体的消息来源来支持。
参考文献:
autorelease-iphone
Why does this create a memory leak (iPhone)?
注:从概念上讲,我可以看出autorelease
比一个简单的release
调用要稍微贵一些,但我不认为小小的惩罚就足以让苹果公司提出反对它的建议。
真实的故事是什么?
最佳答案
(无法接受自己的答案?)
好吧,毕竟,我找到了一个苹果开发者的推荐信,在页面底部添加了一个旁注:
iphone操作系统注意:因为在iphone操作系统上
应用程序在
内存受限环境
使用自动释放池是
在方法或块中不鼓励
代码(例如,循环),其中
应用程序创建许多对象。
相反,您应该显式地释放
任何可能的情况下。
不过,这意味着要小心使用autorelease,而不是完全避免。
(现在请允许我发表评论)
听起来维护游泳池有一定的开销。我读到的this article可能会导致我尽可能避免自动释放,因为我更希望事情是一致的。如果有一些内存在autorelease下,而另一些内存完全是手动管理的,那么可能会更混乱一些。