您是否需要在Objective-C中释放方法参数?

mar*_*rty 12 iphone parameters methods objective-c narc

如果我将参数传递给方法,是否需要在方法结束时释放参数?

And*_*iih 70

不.想想NARC:"新Alloc保留副本".如果你没有做任何这些事情,你不需要发布.

  • 认真.太棒了.如果您假设Stooge的声音并且在分析代码中的内存管理问题时会想到"Narc narc narc",那么效果很好...... (7认同)

Jer*_*myP 6

请阅读Cocoa内存管理指南.以下规则与您的问题相关:

如果使用名称以"alloc"或"new"开头或包含"copy"(例如,alloc,newObject或mutableCopy)的方法创建对象,或者向其发送保留消息,则获取对象的所有权.您有责任使用release或autorelease放弃您拥有的对象的所有权.在收到对象的任何其他时间,您不得释放它.

很明显,您没有通过创建参数来获取参数(在您的方法中).因此,您需要担心的唯一部分是您是否将它们保留在方法中.如果您这样做,则必须释放或自动释放它们.如果您没有,则不得释放或自动释放它们.