【发布时间】:2010-11-30 19:10:21
【问题描述】:
有些对象在我不知情的情况下被自动释放,这让我有点恼火。他们可能是一件好事,但如果他们是,我想知道。文档没有说明哪些方法可以自动释放对象,所以我通常会测试我的前进方式,在我看来这很愚蠢。例如,[NSDate date] 自动释放对象,[NSArray arrayWithObjects:...] 也是如此。没有文档告诉你怎么知道?
我开始看到一种模式,尽管像这样的方法,使用静态函数创建对象的方法,总是返回自动释放的对象。总是这样吗?
【问题讨论】:
-
我相信你的意思是“类方法”(而不是“实例方法”)而不是“静态函数”。正如下面所回答的,+/- 不能确定返回的对象是否是自动释放的,这是一个约定和简单规则的问题。大多数方法返回您必须保留的对象 - 返回具有 +1 保留计数的对象的方法是例外而不是规则。
-
我的意思确实是类方法。我使用了 java 术语中的“静态”,出于某种原因使用了“函数”,尽管它应该是“方法”。好吧,无论如何,它们在记忆中都是一样的。 :)