본문 바로가기
[Effective Objective-C] #25 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙여라 [Effective Objective-C] #25 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙여라 출처 : Effective Objective-C -카테고리는 소스코드가 없는 클래스에 기능을 추가하기 위해 흔히 사용된다.이 기능은 매우 막강하지만 또한 이 기능을 사용함으로써 생기는 문제를 간과하기 쉽다.그 문제는 바로 카테고리의 메서드가 마치 클래스에 원래 있었던 것처럼 클래스의 일부분이 되는 사실 때문에 발생한다.이는 카테고리가 로딩될 때 실행 시간에 일어난다.런타임은 카테고리가 구현한 메서드들을 살펴보고 나서 메서드들을 클래스의 메서드 리스트에 추가한다.추가하는 카테고리의 메서드가 이미 클래스에 있다면, 추가되는 카테고리 메서드가 기존 메서드를 덮어 쓴다.이런 식의 덮어쓰기(overrid.. 2017. 9. 9.
[Effective Objective-C] #15 접두어를 사용해 네임스페이스 충돌을 피하라 [Effective Objective-C] #15 접두어를 사용해 네임스페이스 충돌을 피하라 출처 : Effective Objective-C -오브젝티브-C 는 내장(built-in) 네임스페이스 기능이 없다.그렇기 때문에 일어날 가능성이 있는 충돌을 피하는 방법을 사용하지 않으면 이름은 쉽게 충돌한다.앱에서 이름이 충돌하면 중복 심벌 에러(duplicate symbol error)가 발생하여 링크(link)가 되지 않는다. -링크가 안 되는 것보다 더 좋지 않은 상황은 중복된 것을 포함한 라이브러리 중 하나가 실행 시간에 로딩되었을 때다.이 경우 동적 로더(dynamic loader)는 중복 심벌 에러와 마주치게 될 것이다.그리고 아마도 전체 앱이 다운될 것이다. -이 문제를 피하는 한 가지 방법은 간.. 2017. 8. 17.
[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.
[iOS Study] Objective-C [iOS Study] Objective-C 출처 : 아론 힐리가스의 iOS 프로그래밍 -iOS 앱은 코코아 터치(Cocoa Touch) 프레임워크를 사용하여 Objective-C 언어로 작성된다.Objective-C 는 C 언어의 확장이며 코코아 터치 프레임워크는 Objective-C 클래스의 모음이다. - 일반적으로 Objective-C 에서는 인스턴스 변수명을 밑줄(_) 로 시작한다. - 객체를 만들기 위해서는 클래스에 alloc 메세지를 보낸다. 이에 클래스는 메모리(힙)에 객체를 만들고 변수에 저장된 그 객체의 주소를 준다. -Party* partyInstance = [Party alloc];[partyInstance init]; 새로 할당한 인스턴스에 보내는 첫 메시지는 항상 초기화 메시지다. .. 2016. 2. 13.
반응형