iphone – 指定初始化程序
发布时间:2020-12-14 17:16:26 所属栏目:百科 来源:网络整理
导读:-(id)initWithStrAndDate: (NSString *)inString date:(NSDate *)inDate{ if (self = [super init]) { [self setStr:inString]; [self setDate:inDate]; } return self;}-(id)initWithStr: (NSString *)inString{ return [self initWithStrAndDate:inString
-(id)initWithStrAndDate: (NSString *)inString date:(NSDate *)inDate { if (self = [super init]) { [self setStr:inString]; [self setDate:inDate]; } return self; } -(id)initWithStr: (NSString *)inString { return [self initWithStrAndDate:inString date:[NSDate date]]; } -(id)init { return [self initWithStr:nil]; } 嘿伙计们,我不确定我是否知道如何使用“指定的初始化程序”.首先不是 return [self initWithStrAndDate:inString date:[NSDate date]]; 这个错了?不应该这样: return [self initWithStrAndDate:inString date:nil]; 还有为什么我们使用3种不同的初始化器?我的意思是什么时候我们使用“ – (id)init”或“ – (id)initWithStr:(NSString *)inString”或第一个? 解决方法
有3个不同的初始值设定项,因此您可以使用其中任何一个 – 它们中的任何一个都不对,它们允许您使用可变数据初始化类 – 主要是为了方便,因为它们最终都做同样的事情.
您可以使用指定的字符串和日期(第一个和最长的初始化程序)初始化类, 或者您只能指定字符串并将日期设置为当前时间, 或者你可以有一个空字符串和当前时间. 请注意: [self init]; 等于打电话 [self initWithStr: nil]; 而这又等于 [self initWithStrAndDate: nil date:[NSDate date]]; 所以最后你要调用相同的初始化器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |