본문 바로가기

레퍼런스 카운트2

[iOS] 메모리 관리 기법 - 레퍼런스 카운팅 (Reference Counting) 'iOS와 OS X의 메모리 관리와 멀티스레딩 기법'이라는 책을 접하게 되어 내용을 정리하고자 합니다. 이번 글의 주제는 메모리 관리 기법의 기본인 '레퍼런스 카운팅'과 '메모리 누수' 입니다. 레퍼런스 카운팅 레퍼런스 카운팅(Reference Counting)은 iOS(Mac OS)에서 사용하는 메모리 관리 방법입니다. 이 방법 객체를 참조하는 수(Reference Count)의 증가 또는 감소를 통해 메모리를 관리하게 됩니다. 객체를 생성하거나 참조 하게되면 레퍼런스 카운트는 '+1' 증가하게 되고, 해당 객체의 사용이 끝나거나 객체를 반환(release)할 경우 레퍼런스 카운트가 '-1' 감소됩니다. 최종적으로 해당 객체의 레퍼런스 카운트가 '0'이 될 경우 해당 객체는 메모리에서 소멸됩니다. 객체.. 2019. 10. 31.
[iOS] iOS 메모리 관리 기법 - 2. Objective-C의 메모리 관리 1. 시작하며이전 포스팅에서 메모리 관리 기법인 '레퍼런스 카운팅'에 대해 간단하게 알아 보았습니다. 이번 포스팅에서는 OS X와 iOS에서는 레퍼런스 카운팅을 이용하여 어떻게 메모리를 관리하는지 알아보겠습니다. 2. 레퍼런스 카운팅의 4가지 규칙- 생성하는 객체는 소유권을 가진다.- "retain"을 이용하여 객체의 소유권을 가질 수 있다.- 필요하지 않은 객체는 소유권을 내주어야 한다.- 소유하고 있지 않은 객체의 소유권을 내주어서는 안된다.* 소유권 : reference count (Retain Count) 레퍼런스 카운팅 기법에서는 객체의 참조 대상을 알 필요가 없습니다. 대신 위 4가지의 규칙을 따르는 것이 전부입니다.Objective-C 객체의 행동 Objective-C 메서드 생성, 소유권 .. 2014. 4. 15.