kimdocs...📄
로그인
kimdocs...📄
로그인
[iOS] ARC (Automatic Reference Counting, 자동 메모리 관리)
kimdocs...📄
·
2021년 8월 1일
팔로우
0
ARC
TIL
iOS
swift
0
iOS
목록 보기
19/22
ARC란?
Swift에서
지원하는 메모리 관리 모델
Automatic Reference Counting
컴파일러가 알아서 메모리 관리 코드를 삽입해줌
코드의 양은 적어지고 프로그램의 안정성을 높일 수 있게 되었다.
Reference Counting
인스턴스는 하나 이상의 소유자가 있는 경우 메모리에 유지된다.
소유자가 없다면 그 즉시 메모리에서 제거된다.
제거 시점을 파악하기 위해 소유자 수를 정하는 데 이것을 참조 카운트 (Reference Count)라고 한다.
참조 카운트가 1이상이면 메모리에 유지되고 0이 되면 메모리에서 제거된다.
MRR란?
ARC가 등장하기 전, 개발자는 모든 객체의 레퍼런스 카운트를 직접관리해야 했다.
Apple에서는 이 방식을 MRR(Manual Retain Release)라고 하며 말 그대로 Retain과 Release를 직접 호출하는 방식이다.
Retain
객체가 다른 객체를 참조하겠다.
NSObject 클래스의 함수이며, 객체의 레퍼런스 카운트를 증가시킨다.
객체가 메모리에서 해제되지 않도록 하기 위해 이 함수를 호출하여 레퍼런스 카운트를 증가시킬 수 있다.
Release
객체가 다른 객체의 소유권을 놓아 주겠다.
NSObject 클래스의 함수이며 객체의 레퍼런스 카운트를 감소시킨다.
객체를 더 이상 사용하지 않거나, 메모리에서 해제하고 싶을 떄 이 함수를 호출하여 레퍼런스 카운트를 감소시킬 수 있다.
Retain Count
나라는 객체가 다른 객체에 의해 참조가 되거나 소유가 된 횟수 = ARC에서의 Reference Count
kimdocs...📄
👩🌾 GitHub: ezidayzi / 📂 Contact: ezidayzi@gmail.com
팔로우
이전 포스트
[iOS] 앱의 생명주기 (App-State)와 AppDelegate
다음 포스트
[iOS] Optional은 무엇으로 구성되어 있는 가?
0개의 댓글
댓글 작성