zoukankan      html  css  js  c++  java
  • Swift 懒加载

    1.常见懒加载方法

    class ViewController: UIViewController {
        
        lazy var label: UILabel = {
            let label = UILabel(frame: .zero)
            label.translatesAutoresizingMaskIntoConstraints = false
            label.textColor = .black
            label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
            return label
        }()
    }

    2.懒加载使用weak  还是 unowned?

    [weak self]  in
    
    还是用
    [unowned self]  in

    如果你能保证在使用过程中引用对象不会为nil,用unowned 。如果不能,那么就用weak

    3.工厂方法 + 懒加载

    class ViewController: UIViewController {
        
        lazy var label: UILabel = self.createCustomLabel()
    
        private func createCustomLabel() -> UILabel {
            print("被调用")
            let label = UILabel(frame: .zero)
            label.translatesAutoresizingMaskIntoConstraints = false
            label.textColor = .black
            label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
            return label
        }
    }


    4.如果希望在多处使用,使用静态工厂 + 懒加载

    class ViewController: UIViewController {
        
        lazy var label: UILabel = UILabel.createCustomLabel()
    }
    
    extension UILabel {
    
        static func createCustomLabel() -> UILabel {
            let label = UILabel(frame: .zero)
            label.translatesAutoresizingMaskIntoConstraints = false
            label.textColor = .black
            label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
            return label
        }
    }
  • 相关阅读:
    Lucene.net中的异常处理
    解决lucene 1.* 使用排序后内存溢出问题
    常用的正则表达式
    我的博客开通了
    oracle 常用函数
    破解 office 正版增值计划补丁
    关于dbcommandbuilder的几点说明
    类型转换(一)
    可变数量的参数
    关闭页面时操作数据库
  • 原文地址:https://www.cnblogs.com/naiwenmoer/p/13604372.html
Copyright © 2011-2022 走看看