加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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]];

所以最后你要调用相同的初始化器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读