Это ответвление от предыдущего вопроса, это плохая практика (использование свойства для установки iVars)?
// Designated initializer 001
- (id)initWithName:(NSString *)newName andType:(NSString *)newType {
self = [super init];
if(self) {
[self setName:newName];
[self setType:newType];
}
return self;
}
или я должен использовать ...
// Designated initializer 002
- (id)initWithName:(NSString *)newName andType:(NSString *)newType {
self = [super init];
if(self) {
name = [newName retain];
type = [newType retain];
}
return self;
}
Я использую версию 001, но меня считают, что использование свойств для доступа к iVars в init или dealloc - плохая практика.
РЕДАКТИРОВАТЬ: Добавлено retain
до версии 002
Гэри.