弱参照についてのメモ(Swiftに限った話ではないかもしれません)
弱参照のインスタンスは、参照カウントが1になったら自動的にnilになるようです
Hogeクラスにプロパティtempについてテストしてみました
強参照
class Temp {
}
class Hoge {
var temp: Temp?
init(t: Temp) {
temp = t
}
}
var t:Temp! = Temp()
var h:Hoge! = Hoge(t: t)
t = nil
print(h.temp)
結果
大元のtがnilになっても、tempは強参照なので残ります
> Optional(Temp)
弱参照
tempプロパティを弱参照にしてみました
class Temp {
}
class Hoge {
weak var temp: Temp?
init(t: Temp) {
temp = t
}
}
var t:Temp! = Temp()
var h:Hoge! = Hoge(t: t)
t = nil
print(h.temp)
結果
大元がnilになったので、消えます
> nil