Swift類例項與迴圈引用的解決

2022-01-11 12:53:44 字數 1105 閱讀 5879

**-情形1:

//

兩個屬性的值都允許為nil,這種場景最適合用弱引用來解決

class

person

//弱引用

var apartment: apartment?deinit

}class

apartment

//弱引用

weak var tenant: person?deinit

}var john: person? = person(name: "

john")

var number73: apartment? = apartment(number: 73

)john!.apartment =number73

number73!.tenant =john

john =nil

number73 = nil

**-情形2:

//

乙個屬性的值允許為nil,而另乙個屬性的值不允許為nil,這種場景最適合通過無主引用來解決

class

customer

deinit

}class

creditcard

deinit

}var john: customer? = customer(name: "")

john!.card = creditcard(number: 1234_5678_9012_3456, customer: john!)

john = nil

**-情形3:

//

兩個屬性都必須有值,並且初始化完成後永遠不會為nil

//這種場景最適合通過乙個類使用無主屬性,而另外乙個類使用隱式解析可選屬性來解決

class

country

deinit

}class

city

deinit

}var country: country? = country(name: "

canada

", capitalname: "

ottawa")

country = nil

關於C中指標的引用,解引用與脫去解引用

在指標操作中的意義 1 大家都知道在寫int p 時,可以宣告乙個指標。很少人知道 在c c 中還有乙個名字就是 解引用 他的意思就是解釋引用,說的通俗一點就是,直接去尋找指標所指的位址裡面的內容,此內容可以是任何資料型別,當然也可以是指標 這就是雙重指標,後面將會討論 需要注意的是,在變數宣告的時...

關於C中指標的引用,解引用與脫去解引用

在指標操作中的意義 1 大家都知道在寫int p 時,可以宣告乙個指標。很少人知道 在c c 中還有乙個名字就是 解引用 他的意思就是解釋引用,說的通俗一點就是,直接去尋找指標所指的位址裡面的內容,此內容可以是任何資料型別,當然也可以是指標 這就是雙重指標,後面將會討論 需要注意的是,在變數宣告的時...

打破 Swift 結構體中的迴圈引用

本文講的是打破 swift 結構體中的迴圈引用,嘗試從乙個閉包中訪問結構體 瘋狂的迴圈 我們要怎樣破解這個迴圈?複製行不通,共享引用怎麼樣?一些觀點 說在最後 final class ondelete deinit deletionlogger do deletionlogger deleted 嘗...