본문 바로가기
[Effective Objective-C] #32 안전한 예외 처리 코드를 작성하려면 메모리 관리를 주의 깊게 다루라 [Effective Objective-C] #32 안전한 예외 처리 코드를 작성하려면 메모리 관리를 주의 깊게 다루라 출처 : Effective Objective-C -예외는 많은 최신 언어에서 제공되는 기능이다.C 에는 예외라는 개념이 없지만 C++ 과 오브젝티브-C 에는 있다.사실 최신 런타임에서는 C++ 과 오브젝티브-C 예외가 서로 호환된다.이는 한 언어에서 발생한 예외를 다른 언어에서 catch 해서 처리할 수 있다는 것을 말한다. -오브젝티브-C 는 심각한 에러 처리에만 예외를 사용하도록 권장하긴 하지만 그래도 예외를 잡아 처리하는 코드가 필요할 수 있다.예를 들어 예외가 발생하는 것에 대해 아무런 통제를 할 수 없는 오브젝티브-C++ 코드나 서드 파티 라이브러리를 사용하는 코드에서 예외 처리.. 2017. 9. 25.
[Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 [Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 출처 : Effective Objective-C -생애 주기가 끝난 객체는 할당 해제되고 dealloc 메서드가 호출될 것이다.이 메서드는 객체의 생애 주기 동안 리테인 수가 0으로 떨어질 때 딱 한 번 호출된다.호출되는 시점은 보장되지 않는다. 그렇지만 리테인과 릴리스가 있는 코드를 살펴보고 언제 호출될지 예상할 수 있다고 생각할 수도 있다.그러나 실제로는 여러분이 모르는 사이에 어떠한 라이브러리라도 객체를 조작할 수 있다.이는 예정되지 않는 시점에 할당 해제가 일어나게 하는 원인이 될 수 있다. -절대로 dealloc 을 직접 호출하면 안 된.. 2017. 9. 24.
반응형