arc

iOS/Swift

강한 참조가 사라지면 진짜 ARC가 해제시켜줄까? 에 대한 메모리 실험

참조를 갖고 있지 않을때 UINavigationViewController에서의 PUSH, POP 우선 단순히 UINavigationViewController를 통해 ThirdVC를 push, pop 할 때마다 ThirdVC가 생성 해제 되는 것을 볼 수 있습니다. 메모리를 확인해도 정상적으로 생성되고 없어지는 것을 확인할 수 있습니다. ARC 짱짱! 강한 참조로 연결되어 있을때 PUSH, POP 아래 코드와 같이 FirstViewController의 프로퍼티로 ThirdViewController의 메서드를 가지고 있을 때는 ThirdViewController가 해제될까? class FirstViewController: UIViewController { var handler: (() -> Void)? @..

iOS/Swift

weak, [weak self]를 사용하여 순환참조를 해결하기 + 메모리 영역 확인

순환 참조 방지를 위해 다음과 같이 클로저에서 [waek self]를 사용하여 약한 참조( ARC의 retain을 증가시키지 않는 )를 사용하곤 합니다. 습관적으로 모든 클로저에서 [weak self]를 사용하곤 하였는데 이번 아티클을 계기로 [weak self]를 사용하는 이유와 어느 순간에 사용해야 하는지 다시 한번 제대로 알아봅시다! 순환참조란? 서로 다른 객체가 강한 참조로 서로를 참조하면서 메모리에서 해제되지 못하는 상태로 간단한 예시를 살펴봅시다 class Human { var name: String var pet: Pet? init(name: String) { self.name = name } deinit { print("\(name) 메모리 해제") } } class Pet { var na..

테리펀트
'arc' 태그의 글 목록