溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Swift開發(fā)之懶加載的示例分析

發(fā)布時(shí)間:2021-07-15 11:33:17 來(lái)源:億速云 閱讀:107 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)Swift開發(fā)之懶加載的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

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)擊按鈕打印剛剛定義的懶加載對(duì)象names,按理說(shuō)“--------------”應(yīng)該只打印一次。

/* 
 用到時(shí)再加載 
 多次使用只加載一次 
 */ 
lazy var names :[String] = { 
  let names = ["why", "lmj", "swd"] 
  print("------") 按理說(shuō)應(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í)只打印了一次。

關(guān)于“Swift開發(fā)之懶加載的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI