目的の 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;
}