Swift3.0--懒加载

来源:互联网 发布:搜集房源信息的软件 编辑:程序博客网 时间:2024/06/03 11:17
////  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的区别



0 0
原创粉丝点击