본문 바로가기
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 출처 : Effective Objective-C #33 : Weak 참조를 사용하여 리테인 순환을 피하라. 참조를 weak 로 만들면 리테인 순환을 피할 수 있다. weak 참조는 자동으로 nil 로 채워질 수도, 채워지지 않을 수도 있다. 자동으로 nil 로 설정되는 것은 ARC 에서 소개된 새로운 기능이다. 그리고 런타임에서 구현되었다. 자동으로 nil 로 채워지는 weak 참조를 읽는 것은 항상 안전하다(반드시 정상 객체가 아니면 nil 이기 때문). 그 말은 절대로 할당 해제되는 참조를 포함하지 않는다는 것이다. #34 : 오토릴리스 풀을 사용하여 최고 메모리 .. 2017. 10. 5.
[Effective Objective-C] #40 블록이 자신을 소유한 객체를 다시 소유함으로써 발생하는 리테인 순환을 조심하라 [Effective Objective-C] #40 블록이 자신을 소유한 객체를 다시 소유함으로써 발생하는 리테인 순환을 조심하라 출처 : Effective Objective-C -블록을 주의 깊게 사용하지 않으면 리테인 순환이 쉽게 발생한다. -완료 핸들러 블록은 리테인 순환이 발생할 수 있는 참조를 nil 로 만들어 주어야 한다. -이 리테인 순환 문제는 완료 콜백 블록을 사용하는 API 에서 흔히 발생하는 것이다.그렇기 때문에 꼭 알고 있어야 한다.이 문제는 적절한 순간에 참조 중 하나를 제거함으로써 풀 수 있다.그러나 항상 참조를 제거할 수 있는 순간이 온다고 보장할 수 없다.예를 들어 리테인 순환은 오직 완료 핸들러가 동작할 때만 깨질 수 있다.완료 핸들러가 실행되지 않으면 리테인 순환이 결코 깨.. 2017. 10. 4.
[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.
반응형