Я пытаюсь обернуть голову вокруг языка Swift. Общий шаблон при построении представлений в коде с Objective-C заключается в переопределении свойств пользовательского интерфейса и ленивой загрузке их так:
@property(nonatomic, strong) UILabel *myLabel;
- (UILabel *)myLabel
{
if (!_myLabel) {
_myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 75.0f, 320.0f, 20.0f)];
[_myLabel setFont:[UIFont subHeadlineFont]];
[_myLabel setTextColor:[UIColor subHeadlineColor]];
[_myLabel setText:@"Hello World"];
}
return _myLabel;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view addSubview:self.myLabel];
}
Это позволяет настраивать UIElements в автономном режиме в пределах их установки, но не приводит к их переконфигурированию каждый раз.
Кажется, у нас нет доступа к хранилищу в Swift, а ключевое слово @lazy
не имеет одинаковой семантики.
Мне любопытно, если кто-то идентифицировал подобный шаблон в Swift, который позволяет сохранить конфигурацию переменных и констант вместе с их объявлением аккуратным синтаксическим способом, который не приводит к реконфигурации каждый раз?