반응형

strong reference 2

[Swift] 순환참조에 대해 알아보자 (feat. strong, weak, unowned reference)

순환 참조란 두 가지 이상의 객체가 서로에 대한 Strong Reference(강한 참조) 상태를 가지고 있을 때 발생하며, 순환 참조가 발생하게 되면 서로에 대한 참조가 해제되지 않기 때문에 메모리에서 유지되며 이로 인해 메모리 릭이 발생하게 된다. 이러한 순환 참조를 해결하기 위해 weak, unowned reference가 사용된다. ☞ 클로저에서의 weak self 1. 하나의 인스턴스에 대한 참조먼저, 다음과 같이 Person 클래스를 만들어 보자. import UIKitclass Person { let name: String init(name: String) { self.name = name print("\(name) is being initializ..

iOS/iOS 2021.08.23

[Swift] 클로저에서의 weak self 에 대해 알아보자

클로저를 사용하면서 weak self를 사용해본 경험이 있거나, weak self를 사용하는 코드를 본 적이 있을 것이다. weak self 를 왜 사용해야 하고, 언제 사용해야 하는지에 대해 알아보자. 1. weak self를 왜 사용하는가? Weak reference(약한 참조)는 Retain Cycle(순환 참조)로 인한 메모리 릭을 벗어나기 위해 사용한다. Swift가 Automatic Reference Counting(ARC)를 사용하면서 대두분의 참조 문제를 해결해주지만, 두 가지 이상의 객체가 서로에 대한 Strong Refrence(강한 참조) 상태를 가지고 있다면 Retain Cycle이 발생하게 되며 이때, 메모리 릭이 발생한다. 메모리 릭이 발생한다면, 앱에서 Out Of Memory..

iOS/iOS 2021.07.26
반응형