2010-05-19 80 views

回答

66

编号认为NARC:“New Alloc Retain Copy”。如果你没有做这些事情,你不需要发布。

+11

+1首字母缩写 – 2010-05-19 15:18:42

+6

说真的。太棒了。如果你假设一个Stooge的声音,并且在分析你的内存管理问题代码时认为“Narc narc narc”,那么运行良好... – bbum 2010-05-19 16:01:22

+1

这就是很多代表0的问题。 – 2010-05-22 04:03:18

2

你只需要释放它们,如果你在他们的方法retain。约定是,调用者有责任确保作为参数传递的对象至少在调用活动时一直存在。

6

请阅读Cocoa memory management guidelines。下面的规则是有关您的问题:

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

很明显,您没有通过创建它们(在您的方法中)获取参数。所以你唯一需要担心的部分是你是否保留在方法中。如果你这样做,你必须释放或autorelease他们。如果你没有,你不能释放或自动释放它们。

0

除非您直接使用基础对象,否则您应该将所有这些委托给ARC。

相关问题