我对 Objective-C 很陌生,我有一个问题。
我创建了一个自定义类并尝试为初始化创建重载:
- (id)init
{
if (self = [super init]) {
[self setIsCurrentCar:NO];
}
return self;
}
-(id) initWithID:(NSInteger)id {
if(self = [self init]) {
[self setID:id];
}
return self;
}
-(id) initWithID:(NSInteger)id CarYear:(NSString *)year {
if(self = [self initWithID:id]) {
[self setCarYear:year];
}
return self;
}
假设在某一时刻,我调用了该-(id) initWithIDCarYear
方法。
我想知道上面的代码在结构上是正确的。
- 在此代码中,
self
设置为 3 次。有更好的解决方案吗? - 我在这段代码中有内存泄漏吗?(使用 ARC)
- 我必须
if(self = ...)
始终检查还是它是冗余代码?
谢谢
@Edit 下面的代码更好吗?
-(id) initWithID:(NSInteger)id CarYear:(NSString *)year {
if (self = [super init]) {
[self setIsCurrentCar:NO];
[self setID:id];
[self setCarYear:year];
}
return self;
}