首页 > 学院 > 开发设计 > 正文

Swift3.0--懒加载

2019-11-09 15:26:26
字体:
来源:转载
供稿:网友
////  ViewController.swiftimport UIKitclass ViewController: UIViewController {    //初始化并且分配空间,会提前创建    //移动开发,延迟加载,减少内存消耗,就是懒加载    //懒加载 - lazy    /**     1.能够延迟创建     2.能够解除解包的烦恼(最大的好处)     */        //懒加载简单写法    lazy var label : DemoLabel = DemoLabel();    //懒加载完整写法,实际是一个闭包,日常开发不建议这么写    /**     1. {} 包装代码     2. () 执行代码          日常开发:     1.闭包中智能提示不灵敏     2.出现self.还需要注意循环引用     *///    lazy var label = { () -> DemoLabel in//        var l = DemoLabel();//        //        //设置label的属性....//        //        return l;//    }()            override func viewDidLoad() {        super.viewDidLoad()                setupLabel();            }    PRivate func setupLabel() {                    //插入视图中        //解包 - 为了参与计算,addSubview 用 subviews 数组记录控件,数组中不允许插入nil        self.view.addSubview(label);                label.text = "hello";        label.sizeToFit();        label.center = view.center;    }    }

////  DemoLabel.swiftimport UIKitclass DemoLabel: UILabel {    //重写构造函数    //xib 不会调用    override init(frame: CGRect) {        super.init(frame: frame);                setupUI();    }        //initWithCoder -> 使用xib / sb    //提示:所有UIview及其子类,一旦重写构造函数    //必须实现 initWithCoder 方法,以保证提供两个通道    required init?(coder aDecoder: NSCoder) {        //禁止在xib/sb中使用本类        fatalError("init(coder:) has not been implemented")    }        private func setupUI() {        print("hello");    }    }相关文章:Swift3.0 -- 懒加载和OC的区别


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表