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 } }
- 上一篇 »详解如何在Java中实现懒加载?
- 下一篇 »详解如何在Java中实现懒加载?