2010-07-06 46 views
0

可可“内存管理编程指南”的文件说:可可内存管理规则

如果使用名称以“黄金”或“新”或包含一个方法创建你需要一个对象的所有权“复制”(例如,alloc,newObject或mutableCopy),或者如果您发送一个保留消息。您有责任放弃使用发行版或自动发行版所拥有的对象的所有权。任何其他时间你收到一个对象,你不能释放它。

这是否也适用于[NSNumber numberWithFloat:]或[CAAnimation动画]等便利方法?我应该释放这些还是不?

谢谢!

回答

2

这种说法仍然是便利的方法真实的,尤其是最后一句

您收到一个对象, 你不能释放它的任何其他时间。

这意味着你必须释放这些对象,除非你事先明确向他们发送一个retain消息。

+0

这意味着他们是autoreleased,对不对?谢谢! – Kay 2010-07-06 13:49:23

+0

@Kay:是的,当它们从便捷方法返回时,它们会自动释放。 – 2010-07-06 15:47:36

+3

不,它意味着你没有它们的所有权,因此你不应该释放它们。他们的主人如何选择管理自己的记忆(保留+自动释放或不)是你的担忧。 – 2010-07-06 19:17:40

1

这些方法名称不以allocnew开头,也不包含copy,也不是retain。所以,不,你不拥有这些方法返回的对象,所以你不应该释放它们。