如果我将参数传递给一个方法,那么我需要在方法结束时释放该参数吗?
如果我将参数传递给一个方法,那么我需要在方法结束时释放该参数吗?
不需要释放。考虑“NARC”:新分配、保留、复制。如果您没有执行这些操作中的任何一个,就不需要进行释放。
显然,您没有通过创建它们(在您的方法中)获得参数。因此,您需要担心的唯一部分是是否在方法中保留了它们。如果是,则必须释放或autorelease它们。如果没有,则不能释放或autorelease它们。如果您使用以“alloc”或“new”开头或包含“copy”的方法(例如,alloc、newObject或mutableCopy)创建对象,或者向其发送retain消息,则您将拥有该对象的所有权。您负责使用release或autorelease放弃您拥有的对象的所有权。在任何其他时间接收对象时,您不得释放它。
只有在方法中保留它们时,您才需要释放它们。惯例是,调用者负责确保作为参数传递的对象至少在调用处于活动状态时仍然存在。
除非您直接使用基础对象,否则现在应该将所有这些委托给ARC。