Swift 懶加載(lazy)

在做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" }()

注意:不要忘記最后的小括號,只有加了小括號,必包才會在掉用的時候立刻執(zhí)行。

惰性初始化的使用場景

  • 屬性本身依賴于外部因素才能初始化
  • 屬性需要復雜計算,消耗大量CPU
  • 屬性不確定是否會使用到
  • 定制化的初始化
    有些初始化只需要初始化一次,在變量定義的地方初始化,有助于代碼維護
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在程序設計中,我們經常會使用 懶加載 ,顧名思義,就是用到的時候再開辟空間,比如iOS開發(fā)中的最常用控件UITab...
    貓爪閱讀 21,284評論 10 56
  • OC中,要實現(xiàn)懶加載是用到getter方法,例如 Swift懶加載差別就很大了,懶加載屬性用lazy修飾,注意結尾...
    Misaki_yuyi閱讀 2,404評論 0 1
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,426評論 4 61
  • 小世界,每個人都有自己的小世界。與大世界有沖突有融合有相交。 這兩年發(fā)生了太多太多,比如以前的同事去了西方極樂,比...
    陳不熱小姐閱讀 275評論 0 1
  • 我們都很喜歡約定,約定著長大,約定著旅行,約定著再見,年少的我們,對于約定總是認真的,而且是極其天真的。仿佛一旦說...
    淇畔芷影閱讀 527評論 2 4

友情鏈接更多精彩內容