指定された初期化子に関する一般的な質問があります。私はいくつかのクラスがあり、そこからイニシャライザを呼びたいが、データを渡すことで@propertiesを書き始める前に、データをデフォルトにしたい。例:指定された初期化子とそれを呼び出す
-(id)initWithDefault:(NSDictionary*)defaultTemplate
{
self = [super init];
_fontColor = [defaultTemplate objectForKey:@"color"];
_fontSize = [[defaultTemplate objectForKey:@"size"] intValue];
return self;
}
-(id)initWithTemplate:(NSDictionary*)template
{
self = [self initWithDefault:myDefaultTemplate];
//now i doing something with my template
return self;
}
null @propertiesを防ぐ方法ですか?これは、指定されたイニシャライザの正しい使用ですか?もちろん、myDefaultTemplatesがnullではなく、キーにnullオブジェクトがないと仮定できます。
しかし、なぜこれを使うのですか?この場合、nullプロパティを使用できますか? – Kuba
いいえ、イニシャライザ( 'initWithDefault:')がnil以外の値を返すかどうかをチェックします。 'self'がnilならばプロパティを設定することに意味がありません – adig
ああ、大丈夫です。ありがとう! – Kuba