iphone – 指定初始化程序

前端之家收集整理的这篇文章主要介绍了iphone – 指定初始化程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
-(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]];

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

猜你在找的Xcode相关文章