私は定期的に遅延読み込みを使用して、カスタム クラス、配列などをインスタンス化します。通常、パターンは次のとおりです。
@property (strong, nonatomic) Class *class;
...
- (Class *)class
{
if(!_class) _class = [[Class alloc]init];
return _class;
}
同じパターンを使用して UI 要素を構成することは可能ですか? たとえば、ViewWillAppear ですべてのボタンとビューをフォーマットする代わりに、getter でフォーマットを設定したいと考えています。例えば:
- (UIButton *)button
{
if(!_button) {
_button = [[UIButton alloc]init];
self.button.backgroundColor = [UIColor redColor];
}
return _button;
}
問題は、ストーリーボードを使用していて、XCode がボタンをインスタンス化するため、nill かどうかを尋ねると常に false が返されることです。したがって、背景は決して変更されません。if-then を削除すると、ゲッターにアクセスするたびにバックグラウンドが設定されますが、これはおそらく問題ありませんが、最適ではありません。
では、UI 要素の getter を使用して要素を構成するにはどうすればよいでしょうか?