如果這是一個愚蠢的問題,很抱歉。我剛開始學習迅速。我主要在日常工作中使用php。蘋果商店的SWIFT教科書使用下面的例子(我修改成一個較短的版本)來證明的弱引用的使用:爲什麼Swift不會自動處理循環引用(強引用循環)
class Person {
var apartment: Apartment?;
}
class Apartment {
weak var tenant: Person?;
}
var john: Person?; john = Person();
var number73: Apartment?; number73 = Apartment();
john!.apartment = number73; number73!.tenant = john; //circular reference here
john = nil; number73 = nil; //deference from static variable names
在上面的公寓類的定義,如果弱關鍵字被刪除從var租戶,它會在下面的代碼中創建一個強引用週期,以便兩個實例不會被GC處置。但是,在我看來,GC確實不需要弱參考指標。很顯然,這兩個實例不能從當前範圍中的任何變量或任何靜態變量鏈接,因此它們可以安全地處理。
爲什麼要用Swift強制語法?我能弄清楚的唯一好處是弱關鍵字突出了邏輯,因此代碼更易於閱讀。
「Swift不使用標記和清除垃圾回收,它使用引用計數」給出瞭解釋。 – 2017-03-06 08:48:21