最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS?Swift?Lazy?var?View失效問(wèn)題解決

 更新時(shí)間:2023年07月05日 11:15:52   作者:rome753  
這篇文章主要為大家介紹了iOS?Swift?Lazy?var?View失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

lazy var使用失效

一般來(lái)說(shuō),在UIViewController里的UIView使用lazy var,可以確保在只第一次使用時(shí)創(chuàng)建。

但是如果在viewDidLoad()前訪問(wèn)這個(gè)View,那么這個(gè)View就會(huì)創(chuàng)建兩次,說(shuō)明Lazy var機(jī)制失效了。網(wǎng)上搜了一下,都是說(shuō)Lazy var在多線程下會(huì)失效。然而我打印一下日志,兩次創(chuàng)建都是在主線程。

原因分析

原因我猜測(cè)是UIViewController的創(chuàng)建采用了某種線程加速方法, 導(dǎo)致里面的方法有一些錯(cuò)亂?

在viewDidLoad()前不要訪問(wèn)里面的View,否則會(huì)導(dǎo)致莫名其妙難以排查的bug!

class NoSafeVC: UIViewController {
    lazy var myView: UIView = {
        let view = UIView(frame: view.bounds)
        print("create myView \(view) \(Thread.current)")
        return view
    }()
    init() {
        super.init(nibName: nil, bundle: nil)
        _ = myView // 提前訪問(wèn)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .gray
        view.addSubview(myView)
    }
}
create myView <UIView: 0x104b19730; frame = (0 0; 375 667); 
layer = <CALayer: 0x280fd1f40>> <NSThread: 0x281ae08c0>{number = 1, name = main}
create myView <UIView: 0x104b198a0; frame = (0 0; 375 667); 
layer = <CALayer: 0x280fd1fc0>> <NSThread: 0x281ae08c0>{number = 1, name = main}

以上就是iOS Swift Lazy var View失效問(wèn)題解決的詳細(xì)內(nèi)容,更多關(guān)于iOS Swift Lazy var View失效的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼

    iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼

    本篇文章主要介紹了iOS錄屏和截屏監(jiān)聽的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • iOS開發(fā)之運(yùn)動(dòng)事件和遠(yuǎn)程控制

    iOS開發(fā)之運(yùn)動(dòng)事件和遠(yuǎn)程控制

    在iOS中事件分為三類:觸摸事件:通過(guò)觸摸、手勢(shì)進(jìn)行觸發(fā)(例如手指點(diǎn)擊、縮放),運(yùn)動(dòng)事件:通過(guò)加速器進(jìn)行觸發(fā)(例如手機(jī)晃動(dòng)),遠(yuǎn)程控制事件:通過(guò)其他遠(yuǎn)程設(shè)備觸發(fā)(例如耳機(jī)控制按鈕)今天我們來(lái)詳細(xì)探討下運(yùn)動(dòng)事件和遠(yuǎn)程控制
    2016-04-04
  • IOS定制屬于自己的個(gè)性頭像

    IOS定制屬于自己的個(gè)性頭像

    這篇文章主要為大家介紹了IOS定制屬于自己的個(gè)性頭像,實(shí)現(xiàn)方法很簡(jiǎn)單,感興趣的小伙伴們可以參考一下
    2016-01-01
  • iOS關(guān)聯(lián)對(duì)象示例詳解

    iOS關(guān)聯(lián)對(duì)象示例詳解

    這篇文章主要給大家介紹了關(guān)于iOS關(guān)聯(lián)對(duì)象的相關(guān)資料,文中通過(guò)示例代碼結(jié)束的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • IOS collectionViewCell防止復(fù)用的兩種方法

    IOS collectionViewCell防止復(fù)用的兩種方法

    這篇文章主要介紹了IOS collectionViewCell防止復(fù)用的兩種方法的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • iOS實(shí)現(xiàn)H5支付(微信、支付寶)原生封裝

    iOS實(shí)現(xiàn)H5支付(微信、支付寶)原生封裝

    這篇文章主要介紹了iOS實(shí)現(xiàn)H5支付(微信、支付寶)原生封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • iOS如何將照片保存到相冊(cè)

    iOS如何將照片保存到相冊(cè)

    這篇文章主要為大家詳細(xì)介紹了iOS將照片保存到相冊(cè)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

    iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

    這篇文章主要給大家介紹了關(guān)于iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • iOS 封裝導(dǎo)航欄及返回,獲取控件所在控制器的實(shí)例

    iOS 封裝導(dǎo)航欄及返回,獲取控件所在控制器的實(shí)例

    下面小編就為大家分享一篇iOS 封裝導(dǎo)航欄及返回,獲取控件所在控制器的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • ios中Deep Linking實(shí)例分析用法

    ios中Deep Linking實(shí)例分析用法

    本篇文章給大家分享了在IOS中Deep Linking的用法以及代碼實(shí)例,有興趣的朋友跟著學(xué)習(xí)下吧。
    2018-01-01

最新評(píng)論

清流县| 右玉县| 东平县| 新田县| 勃利县| 东阿县| 邮箱| 莆田市| 临朐县| 内乡县| 仲巴县| 日照市| 上栗县| 合江县| 都昌县| 东乡县| 常州市| 尼勒克县| 建阳市| 杭锦旗| 唐海县| 马山县| 高要市| 米易县| 张家口市| 华阴市| 多伦县| 冷水江市| 亳州市| 佛冈县| 青冈县| 泸州市| 秦皇岛市| 永康市| 公安县| 瓦房店市| 左贡县| 玉龙| 鹤庆县| 达州市| 清镇市|