본문 바로가기
[Objective-C] 참조 카운터를 사용한 메모리 관리 방법 [Objective-C] 참조 카운터를 사용한 메모리 관리 방법 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 5. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 5.1. 동적 메모리 관리 * 5.1.1. 메모리 관리의 필요성 -이미 해제된 부분을 가리키는 위험한 포인터를 댕글링 포인터(dangling pointer) 또는 허상 포인터라고 부른다. * 5.1.2. 카운터 관리 방식과 ARC, 가비지 컬렉션 -Objective-C 2.0 에는 카운터 관리 방식과 다른, 가비지 컬렉션이라는 메모리 관리 방식도 이용할 수 있게 되었다.가비지 컬렉션은 프로그램의 일.. 2017. 12. 27.
[Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 [Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 출처 : Effective Objective-C -생애 주기가 끝난 객체는 할당 해제되고 dealloc 메서드가 호출될 것이다.이 메서드는 객체의 생애 주기 동안 리테인 수가 0으로 떨어질 때 딱 한 번 호출된다.호출되는 시점은 보장되지 않는다. 그렇지만 리테인과 릴리스가 있는 코드를 살펴보고 언제 호출될지 예상할 수 있다고 생각할 수도 있다.그러나 실제로는 여러분이 모르는 사이에 어떠한 라이브러리라도 객체를 조작할 수 있다.이는 예정되지 않는 시점에 할당 해제가 일어나게 하는 원인이 될 수 있다. -절대로 dealloc 을 직접 호출하면 안 된.. 2017. 9. 24.
[Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 [Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 출처 : Effective Objective-C -Clang 컴파일러 프로젝트(맥 OS X 와 iOS 개발에 사용되는 컴파일러 프로젝트)는 문제가 있는 참조 세기의 위치를 가리킬 수 있게 정적 분석기를 도입했다.이 정적 분석기를 통해 메모리 누수가 있다고 알려줄 수 있다.어디에 메모리 관리 문제가 있는지도 알려줄 수 있다.이것이 ARC 가 만들어진 배경이다. -ARC 는 이름이 말하는 그대로의 일을 한다.즉 reference counting 을 자동으로 한다.그래서 이전 코드 조각에서는 release 등을 써 주던 것을 이제는 하지 않아도 ARC 가 알아서 추가해준다. -ARC 를 사용할 때.. 2017. 9. 23.
반응형