如果我有一个使用输入的方法,我必须保留吗?我是否需要保留我在参数中收到的对象?
- (void) exampleMethod: (NSString *)input {
self.hey = [input retain];
}
如果我多次使用input
会怎么样?
如果我有一个使用输入的方法,我必须保留吗?我是否需要保留我在参数中收到的对象?
- (void) exampleMethod: (NSString *)input {
self.hey = [input retain];
}
如果我多次使用input
会怎么样?
阅读Memory Management Rules。如果hey
是设置了retain
或copy
属性的属性,则不需要调用-retain
就可以了(您可以仅执行self.hey = input
)。
您不需要保留仅在该方法期间使用的参数。如果你要更长时间地参考它(如你在你的例子中那样),那么在大多数情况下你应该这样做。但是,如果你正在使用一个属性(它又是你似乎在这里),你应该在属性设置器本身内部管理内存,在调用setter时不要显式调用retain。