中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

破解強引用循環

發布時間:2020-07-31 23:08:55 來源:網絡 閱讀:423 作者:hehemmm 欄目:開發技術

    Swift提供了兩種方法來解決強引用循環問題:弱引用和無主引用


一、弱引用

        弱引用允許循環引用中的一個對象不采用強制方式引用另外一個對象,這樣就不會引起強引用循環的問題,弱引用適用于引用對象可以沒有值的情況,因為若引用可以沒有值,必須將每一個若引用聲明為可選類型,使用關鍵字weak聲明若引用對象


   

     class Employee {
                var no:Int
                var name:String
                var job:String
                var salary:Double
                var dept:Department?
                init(no:Int,name:String,job:String,salary:Double){
                        self.no = no
                        self.name = name
                        self.job = job
                        self.salary = salary
    }
                deinit{
                    println("Employee對象已經被析構")
    }
}

    

        class Depatment {
                    var no:Int
                    var name:String
                    weak var manager:Employee?
                    
                    init(no:Int,name:String){
                            self.no = no
                            self.name = name
    }
        
                deinit{
                        println("Department對象已經被析構")
        }
}

二、無主引用


        無主引用與弱引用一樣,允許循環引用中的一個對象不采用強引用的方式引用另外一個對象,這樣就不會引起強引用循環的問題,無主引用對象適用于引用對象永遠有值的情況,它總是被定義為非可選類型,使用關鍵字unowned表示無主引用

        

        class Depatment {
                    var no:Int
                    var name:String
                    unowned var manager:Employee
                    
                    init(no:Int,name:String){
                            self.no = no
                            self.name = name
    }
        
                deinit{
                        println("Department對象已經被析構")
        }
}

            

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 宁明县| 山西省| 江华| 五家渠市| 梁平县| 金山区| 达日县| 黄平县| 沂南县| 泌阳县| 鄂尔多斯市| 蕲春县| 施甸县| 屯留县| 东乡县| 博白县| 荔波县| 石泉县| 兴城市| 宜春市| 喜德县| 子洲县| 博客| 正蓝旗| 盐城市| 襄樊市| 微山县| 彰化市| 镇远县| 揭东县| 遂宁市| 平安县| 通许县| 晋州市| 鹤庆县| 邓州市| 珲春市| 五河县| 富蕴县| 通江县|