IOS网友们的篇章一起修炼swiftswift编程开发

Swift 懒加载(lazy)

2016-05-14  本文已影响2703人  Bobby0322

在做OC项目中经常使用的就是懒加载,重写getter方法, 什么时候用到getter方法什么时候去加载, 并且就加载一次,保证项目的效率

那么何为惰性初始化呢?
从OC的代码中不难看出,惰性初始化,就是在变量第一次使用的时候才进行初始化。

那么Swift也有懒加载这么一说,而且Apple 很推荐我们使用懒加载, 并且还有一个关键字lazy

懒加载定义: var 变量名: 类型 = 闭包()

看一下下面的实例

    private lazy var backBtn: UIButton          = UIButton()
    private lazy var likeBtn: UIButton          = UIButton()
    private lazy var sharedBtn: UIButton        = UIButton()
    private lazy var submitTitle: UILabel       = UILabel()
    private lazy var line:UIView                = UIView()
    private lazy var isLoadFinsih               = false
    private lazy var isAddBottomView            = false
    private lazy var showBlackImage             = false
    private lazy var detailVebView: UIWebView   = UIWebView(frame: CGRectMake(0,0,AppWidth,AppHeight))
    private lazy var tableFooterView            = UIView()
    private lazy var loadFinishScrollHeihgt: CGFloat = 0
    private lazy var customNav: UIView = {
        let customNav = UIView(frame: CGRectMake(0, 0, AppWidth, NavigationH))
        customNav.backgroundColor = UIColor.whiteColor()
        customNav.alpha = 0.0
        return customNav
    }()

Swift中的惰性初始化

Swift中,有两种方式来惰性初始化。
第一种,简单表达式

lazy var first = NSArray(objects: "1","2")

第二种,闭包

lazy var second:String = { return "second" }()

注意:不要忘记最后的小括号,只有加了小括号,必包才会在掉用的时候立刻执行。

惰性初始化的使用场景

上一篇下一篇

猜你喜欢

热点阅读