【发布时间】:2014-02-16 16:06:58
【问题描述】:
在阅读有关 Objective-C 中的类时,我发现在某些情况下,人们建议在实现 init 方法时这样做:
- (id) init {
if ( self = [super init] ) {
...
}
return self;
}
虽然其他人没有提到这一点。哪一个是正确的?
此外,在大多数情况下定义 setter 时,它们只是包含在一个赋值中,但有时它们显示为:
- (void) setCaption: (NSString*)input {
[caption autorelease];
[input retain];
caption = input;
}
再一次,哪一个是最好的方法? ARC对此有影响吗?如果我使用ARC,我不需要像上面那样使用autorelease吗?
谢谢!
【问题讨论】:
-
有了 ARC,你不必关心内存管理,所有方法,如保留、释放、自动释放和释放,都是被禁止的。
标签: objective-c class retain autorelease