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)擊按鈕打印剛剛定義的懶加載對(duì)象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ǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
IOS 使用NSAssert()和NSParameterAssert調(diào)試程序
這篇文章主要介紹了IOS 使用NSAssert()和NSParameterAssert調(diào)試程序的相關(guān)資料,需要的朋友可以參考下2017-06-06
iOS開發(fā)之?dāng)?shù)字每隔3位用逗號(hào)分隔
以前在做電商app時(shí)經(jīng)常會(huì)針對(duì)稍大的金額展示出來,需要每隔千位添加逗號(hào)便于用戶識(shí)別,下面通過本文給大家分享ios中數(shù)字每隔3位用逗號(hào)分隔的實(shí)例代碼,需要的朋友參考下吧2017-09-09
iOS中UITableView Cell實(shí)現(xiàn)自定義單選功能
本篇文章主要介紹了iOS中UITableView Cell實(shí)現(xiàn)自定義單選功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
iOS利用CALayer實(shí)現(xiàn)動(dòng)畫加載的效果
網(wǎng)上關(guān)于動(dòng)畫加載的效果大多每一個(gè)圓圈都是使用UIView,因?yàn)檫@種容易控制,但是這里用的是CALayer,文中給出了詳細(xì)的實(shí)現(xiàn)示例代碼,相信會(huì)對(duì)大家的學(xué)習(xí)和理解很有幫助,感興趣的朋友們下面來一起看看吧。2016-10-10

