본문 바로가기
[Effective Objective-C] #25 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙여라 [Effective Objective-C] #25 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙여라 출처 : Effective Objective-C -카테고리는 소스코드가 없는 클래스에 기능을 추가하기 위해 흔히 사용된다.이 기능은 매우 막강하지만 또한 이 기능을 사용함으로써 생기는 문제를 간과하기 쉽다.그 문제는 바로 카테고리의 메서드가 마치 클래스에 원래 있었던 것처럼 클래스의 일부분이 되는 사실 때문에 발생한다.이는 카테고리가 로딩될 때 실행 시간에 일어난다.런타임은 카테고리가 구현한 메서드들을 살펴보고 나서 메서드들을 클래스의 메서드 리스트에 추가한다.추가하는 카테고리의 메서드가 이미 클래스에 있다면, 추가되는 카테고리 메서드가 기존 메서드를 덮어 쓴다.이런 식의 덮어쓰기(overrid.. 2017. 9. 9.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 #1 : Objective-C 의 기원과 친숙해져라. Objective-C는 객체 지향 기능을 추가한 C 의 확장이다. Objective-C는 동적 바인딩을 사용하는 메시징 구조를 이용한다. 동적 바인딩은 객체 타입이 실행 시간에 밝혀지는 것을 뜻한다. 메시지를 받았을 때 동작할 코드를 컴파일러가 아닌 런타임이 결정한다. C의 핵심 개념을 이해하고 있으면 Objective-C를 효과적으로 작성하는 데 도움이 된다. 특히 메모리 모델과 포인터를 잘 이해하고 있어야 한다. #2 : 헤더에 헤더를 포함하는 것을 최소화하라 항상 헤더를 포함하는 것을 최대한 미루라. 이는 보통 헤.. 2017. 8. 10.
[Effective Java] 컴파일 경고 메세지가 없게 하자. [Effective Java] 컴파일 경고 메세지가 없게 하자. - 제네릭을 사용해서 프로그램을 작성하면 컴파일 경고 메세지를 많이 마딱뜨릴 수 있다. unchecked cast, unchecked method call, unchecked generic array generation, unchecked conversion 등. - 가능한 모든 unchecked 경고 메세지를 없애자. 이는 Runtime 시 ClassCastException 예외가 생기지 않음을 의미한다. - 특정 경고 메세지는 없앨 수 없지만, 그 메세지를 유발시킨 코드가 타입 안전을 보장한다면 @SuppressWarnings("unchecked") Annotation 을 사용해서 경고 메시지를 안 나타나게 억제할 수 있다. Suppre.. 2016. 11. 24.
반응형