我对在目标 C 中编写指定初始化程序的原因感到困惑。并调用超类的 init 方法以使其覆盖超类的实现?
谁能解释创建此类方法的可能原因是什么?
例如,
-(id)initWithCardCount:(NSUInteger)count usingDeck:(Deck *)deck // Designated Initialiser
{
self = [super init];
if(self)
{
for (int i = 0; i < count; i++)
{
Card *card = [deck drawRandomCard];
if(!card)
{
self = nil;
}else
{
self.cards[i] = card;
}
}
}
return self;
}