我了解拥有初始化程序的目的是将实例变量设置为某些值。但是,我很困惑为什么要为每个实例变量设置多个初始化程序。一个初始化程序不能设置所有实例变量吗?我想我的问题真的是在一个类中有多个初始化器的实用性是什么。例如,一个类具有以下内容:
- (id)initWithItemName:(NSString *)name
{
return [self initWithItemName:name valueInDollars:0 serialNumber:@""];
}
同时指定的初始化器是这样给出的:
- (id) initWithItemName:(NSString *)name valueInDollars:(int)value
serialNumber:(NSString *)sNumber;
如您所见,指定的初始化程序已经初始化了 itemName 变量。所以,为一个变量设置一个特定的初始化器有什么意义。