Я нахожу себя ленивой инициализацией всех своих функций сейчас. Это просто кажется более естественным, и это позволяет мне прекратить записывать функции настройки. Это плохо по дизайну? Каковы подводные камни?Можно ли ленить инициализировать/загрузить все объекты?
@property (nonatomic, strong) NSMutableArray *array1;
-(NSMutableArray *)array1{
if (!_array1){
_array1 = [[NSMutableArray alloc] init];
}
return _array1;
}
Я тогда найти себе делать такие вещи, как:
-(NSMutableArray *)array1{
if (!_array1){
_array1 = [[NSMutableArray alloc] init];
// read a file
// [_array addObject:newObject];
}
return _array1;
}
Все в порядке, просто не забудьте всегда называть self.array1 внутри класса, а не _array1. –
Формы, подобные этому, не позволят установить значение 'nil' (и при чтении будет возвращено' nil'), что иногда может быть желательным. Определенно документируйте это поведение, если это будет публичный API! – Kitsune