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

iOS?Swift?Lazy?var?View失效問題解決

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

lazy var使用失效

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

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

原因分析

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

在viewDidLoad()前不要訪問里面的View,否則會導致莫名其妙難以排查的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 // 提前訪問
    }
    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失效問題解決的詳細內(nèi)容,更多關(guān)于iOS Swift Lazy var View失效的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

    iOS開發(fā)之運動事件和遠程控制

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

    IOS定制屬于自己的個性頭像

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

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

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

    IOS collectionViewCell防止復用的兩種方法

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

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

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

    iOS如何將照片保存到相冊

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

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

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

    iOS 封裝導航欄及返回,獲取控件所在控制器的實例

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

    ios中Deep Linking實例分析用法

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

最新評論

漳平市| 绥化市| 新丰县| 凤台县| 新竹县| 辉县市| 申扎县| 科技| 克拉玛依市| 新宾| 建昌县| 顺平县| 汝城县| 千阳县| 冕宁县| 溧水县| 宜州市| 望奎县| 梧州市| 义乌市| 迁西县| 潜江市| 若羌县| 泉州市| 林周县| 广河县| 阿城市| 顺昌县| 灌南县| 庄河市| 阆中市| 西昌市| 安国市| 沁阳市| 光泽县| 海伦市| 昌江| 凤山市| 柳林县| 渭源县| 尉犁县|