あなたがinit
またはviewDidLoad
でそれを行うことなく得ることができる最も近い怠惰なインスタンス化したものです。それはスウィフトでないように計算された変数を作成することはありませんが
- (void)viewDidLoad {
[super viewDidLoad];
UIView *myView = ^UIView*() {
UIView *view = [[UIView alloc] initWithFrame: CGRectZero];
view.layer.masksToBounds = TRUE;
view.layer.cornerRadius = 5;
view.translatesAutoresizingMaskIntoConstraints = FALSE;
//Add constraints
return view;
}();
[self.view addSubview: myView];
}
を、:
@interface SomeClass: NSObject
@property (nonatomic, strong) UIView *myView;
@end
@implementation SomeClass
- (UIView *)myView
{
if (!_myView) {
_myView = [[UIView alloc] init];
_myView.layer.masksToBounds = YES;
_myView.layer.cornerRadius = 5;
_myView.translatesAutoresizingMaskIntoConstraints = NO;
}
return _myView;
}
@end
私はブロック内のオブジェクトをインスタンス化し、ブロックの結果としてオブジェクトを返す方法を示しましたが、あなたの答えはおそらく、OPが鉱山よりも求めていた**本当の**質問に近いでしょう。 (不動産の遅延インスタンス化)。 –
私はそれをどのように呼び出すことができますか?(私は客観的なcのnoobです) – TBDevOfWorldOfSwIFT
これは 'self.myView'です。 – keithbhunter