У меня есть общий вопрос об обозначенном инициализаторе. У меня есть некоторый класс, и оттуда я хочу вызвать инициализатор, но прежде чем я начал заполнять свои @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 не является нулевым и не имеет нулевого объекта в ключах.
Но зачем использовать это if()? В этом случае я могу использовать нулевые свойства? – Kuba
Нет, это проверяет, что инициализатор ('initWithDefault:') возвратил значение nil. Нет смысла устанавливать свойства, если 'self' is nil – adig
О, хорошо. Благодаря! – Kuba