본문 바로가기

ARC2

[Swift] ARC에 관한 문제 해결하기(클로저에 관하여) 저번 시간에는 클래스를 참조하면서 발생할 수 있는 ARC와 관련된 문제점을 알아보고 약한 참조와 미소유 참조 등 다양한 해결책도 같이 알아보았다. 이번 시간에는 ARC에 관한 마지막 글로 이런 강한 참조 문제가 클로저 내부에서도 발생될 수도 있고 이러한 것을 해결하는 해결책도 같이 알아보려고 한다.(참조가 가능한 것은 클로저와 클래스가 있다.) 1. 문제 발생 원인 다음을 보면 HTMLElement라는 클래스 내부에 지연 저장 프로퍼티인 asHTML이 보인다. 그리고 그속에서 self.text와 slef.name 등이 사용되고 있는 것들도 보인다. 이것은 HTMLElement라는 클래스 내부의 하나의 프로퍼티인 asHTML 클로저내에서 자신이 속해 있는 클래스를 다시 참조하는 것이다. 그래서 우리가 만약.. 2020. 7. 25.
[Swift] ARC의 정의와 발생될 수 있는 문제점 나는 스위프트로 App을 만드는 것을 즐긴다. 하지만 초심자는 "이것이 과연 메모리(ex RAM)에 얼마나 영향(무게)을 줄 것인가"까지 고려하지는 않는다. 눈 앞의 구현도 벅차는게 현실이다. 그럼에도 더 나은 프로그램을 위해 ARC를 알면 좋다. ARC는 램에 영향을 줄이려고 만들어진 체계라고 보면 쉽다. 시작 전에 이 글은 docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html의 내용을 필자가 번역하며 쓴 글임을 밝힌다. 1. ARC란 무엇인가? ARC의 정의는 자동참조 카운팅으로 몇 번 인스턴스가 참조되는 지를 자동으로 파악하는 기술이다. 이것은 현재 스위프트와 Objective-C에서도 사용되고 있다. 인스턴스를 참조한다는 .. 2020. 7. 10.