ARC

작성일

ARC

class Person {
  var name = "John Doe"

  deinit {
    print("person deinit")
  }
}

var person1: Person?
var person2: Person?
var person3: Person?

person1 = Person()
person2 = person1
person3 = person1

이렇게 사용하면 Person Instance를 참조가 3이 되버린다.

그후

person1 = nil
person2 = nil

을 해도 person3이 Person Instance를 참조하고 있기 때문에 메모리에서 내려가지 않는다. 따라서

person3 = nil

을 해야지

출력

person deinit

이 출력된다.