[swift] unowned 참조의 미소유 참조

미소유 참조는 레퍼런스 타입 변수가 항상 값을 가지고 있다고 가정할 때 사용합니다. 변수가 항상 값이 있는 것이 보장되기 때문에, 강한 참조(Strong Reference)와 달리 Optional로 감쌀 필요가 없습니다. 또한 미소유 참조는 초기화되면 절대로 nil이 되지 않는다고 가정합니다.

하지만 주의해야 할 점이 있습니다. 미소유 참조가 참조하고 있는 인스턴스가 메모리 해제될 경우 더 이상 참조할 수 없는 댝스터(rust) 상태가 됩니다. 이로 인해 런타임 에러가 발생할 수 있으므로 분별하여 사용해야 합니다.

이제 unowned 키워드를 사용하여 미소유 참조를 선언하는 방법에 대해 알아보겠습니다.

class Person {
    let name: String
    unowned let friend: Person
    init(name: String, friend: Person) {
        self.name = name
        self.friend = friend
    }
}

위 코드에서 friend 속성은 unowned 키워드로 선언되어 있습니다. 이는 friend 인스턴스가 항상 값이 있고, nil이 될 수 없다는 것을 나타냅니다.

미소유 참조를 사용할 때에는 이러한 사항들을 유념하여 안전성을 고려해야 합니다.

감사합니다.