LoginSignup
10
10

More than 5 years have passed since last update.

Swiftの弱参照について

Last updated at Posted at 2015-12-01

弱参照についてのメモ(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
10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10