我目前正在閱讀Apple的「Programming with Objective C」手冊,它顯示了這兩個init方法。他們之間的區別是什麼?每個人什麼時候適合使用?Init方法:這兩者有什麼區別?
- (id)initWithFirstName:(NSString *)aFirstName lastName:(NSString *)aLastName dateOfBirth: (NSDate *)aDateOfBirth {
self = [super init];
if (self) {
_firstName = aFirstName;
_lastName = aLastName;
_dateOfBirth = aDateOfBirth;
}
return self;
}
VS
- (id)initWithFirstName:(NSString *)aFirstName lastName:(NSString *)aLastName {
return [self initWithFirstName:aFirstName lastName:aLastName dateOfBirth:nil];
}
第一個是正確的,嘗試一下。如果你嘗試第二種,會發生什麼? –
第二個自己調用,所以會無限循環。這是你打算問的問題還是你可能輸錯了其中一種方法? – isaac
在引用的手冊中,被調用的方法有第三個'dateOfBirth'參數。 – ThomasW