クラスの指定された初期化子を実装し、他の初期化子にこれを呼び出させる必要があることを教える本を読んでいます(これには同意します)。
今、私はこの本のセクションにいます:「UITableViewController の指定されたイニシャライザは initWithStyle:」です。そして、次のように実装します。
// inside ItemsViewController.m, subclass of UITableViewController
-(id) init{
// Call the superclass's designated initializer
self = [super initWithStyle:UITableViewStyleGrouped];
if (self) {
}
return self;
}
- (id)initWithStyle:(UITableViewStyle)style
{
return [self init];
}
このコードの後に、本は次のようにも述べています。
投稿の冒頭で説明した原則に固執するために、このクラスを次のように実装した可能性があります。
// inside ItemsViewController.m, subclass of UITableViewController
// Implement the designated initializer first
-(id) initWithStyle:(UITableViewStyle)style
// Call the superclass's designated initializer
self = [super initWithStyle:UITableViewStyleGrouped];
if (self) {
}
return self;
}
// Call designated initializer
- (id)init
{
return [self initWithStyle: nil];
}
しかし、私は何かが欠けていると思いますか?私は本init
が彼らの場合に指定されたイニシャライザとして使用していると思いますか?