延迟加载属性在swift

延迟加载属性在swift,第1张

概述我试图把我的头围绕着Swift语言。使用Objective-C在代码中构建视图时的常见模式是覆盖UI属性延迟加载它们,如下所示: @property(nonatomic, strong) UILabel *myLabel;- (UILabel *)myLabel{ if (!_myLabel) { _myLabel = [[UILabel alloc] init 我试图把我的头围绕着Swift语言。使用Objective-C在代码中构建视图时的常见模式是覆盖UI属性并延迟加载它们,如下所示:
@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允许一个保持变量和常量的配置与他们的声明一个整洁的句法方式,不会导致每次重新配置?

我认为用闭包初始化的惰性属性将工作:
lazy var myLabel: UILabel = {    var temporaryLabel: UILabel = UILabel()    ...    return temporaryLabel}()

当我阅读“Swift编程语言”。(Checkerboard示例)闭包只评估一次)。

总结

以上是内存溢出为你收集整理的延迟加载属性在swift全部内容,希望文章能够帮你解决延迟加载属性在swift所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存