Swift 開發(fā)之懶加載的實(shí)例詳解
Swift 開發(fā)之懶加載的實(shí)例詳解
/// A display link that keeps calling the `updateFrame` method on every screen refresh. private lazy var displayLink: CADisplayLink = { self.isDisplayLinkInitialized = true let displayLink = CADisplayLink(target: TargetProxy(target: self), selector: #selector(TargetProxy.onScreenUpdate)) displayLink.add(to: .main, forMode: self.runLoopMode) displayLink.isPaused = true return displayLink }()
public var priority: Float { get { return internalTask.priority } set { internalTask.priority = newValue } }
一個(gè)VC上放了一個(gè)按鈕,然后點(diǎn)擊按鈕打印剛剛定義的懶加載對象names,按理說“--------------”應(yīng)該只打印一次。
/* 用到時(shí)再加載 多次使用只加載一次 */ lazy var names :[String] = { let names = ["why", "lmj", "swd"] print("------") 按理說應(yīng)該只打印一次 return names }() //方式一:僅僅創(chuàng)建button lazy var btn1:UIButton = UIButton() //方式二:可以設(shè)置更多btn的屬性 lazy var btn :UIButton = { let btn = UIButton() btn.setTitle("按鈕", for: .normal) btn.setImage(UIImage(named:""), for: .normal) return btn }()
點(diǎn)擊按鈕打印
//MARK: 點(diǎn)擊事件 func buttonClick(_ sender:UIButton) { print("----\(names.count)") }
看看控制臺(tái)的打印結(jié)果:
------ ----3 ----3 ----3 ----3
從以上結(jié)果可以看出“--------------”確實(shí)只打印了一次。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
iOS 實(shí)現(xiàn)類似QQ分組樣式的兩種方式
這篇文章主要介紹了iOS 實(shí)現(xiàn)類似QQ分組樣式的兩種方式,思路很簡單,對模型數(shù)據(jù)操作或則控制界面顯示,需要的朋友可以參考下2017-07-07iOS App開發(fā)中的UIStackView堆疊視圖使用教程
UIStackView是iOS9以來新增加的組件,使我們能夠?qū)IView子類對象進(jìn)行靈活排版,這里我們就來看一下iOS App開發(fā)中的UIStackView堆疊視圖使用教程2016-07-07IOS 中NSUserDefaults讀取和寫入自定義對象的實(shí)現(xiàn)方法
這篇文章主要介紹了IOS 中NSUserDefaults讀取和寫入自定義對象的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文大家能夠理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09IOS使用progssview仿滴滴打車圓形計(jì)時(shí)
本文給大家分享的是IOS中實(shí)現(xiàn)仿滴滴打車的原型計(jì)時(shí)效果,非常的實(shí)用,有需要的小伙伴可以參考下。2015-07-07