본문 바로가기
[Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 [Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 출처 : Effective Objective-C -객체 타입은 컴파일 시간에 결정되지 않고 실행 시간에 찾는다. -컴파일러는 리시버가 이해할 수 없다고 생각되는 메시지를 보내는 것에 경고를 보낼 수 있다.반대로 id 타입의 객체는 모든 메시지에 응답할 수 있다고 여긴다. -실행 시간에 객체 타입을 알아내는 것을 내성(introspection)이라 하고, 이는 Foundation 프레임워크의 NSObject 의 프로토콜로 녹아 들어간 강렬하고 유용한 기능이다.이 프로토콜은 모든 공통 최상위 클래스(NSObject 와 NSProxy) 를 상속받는 모든 객체가 따르는 프로토콜이다.객체의 클래스를 직접 비교하는 것보다는 이런 메서.. 2017. 8. 16.
[Android] 새로운 Dex Compiler 가 나온다네용 -이 글은 D8 이 출시되기 전에 쓰여진 글이라 현재는 deprecated doc 이라고 볼 수 있겠다.D8 에 대한 이야기는 아래 링크를 참조하시길..[android] D8 이 뭐야? -Android APK 를 만들 때 Javac 를 이용해서 bytecode 인 .class 를 만든 후dex compiler 를 이용해서 bytecode 들을 .dex 로 만든다. -Android Studio 3.0 Beta 부터 "D8" 이라고 불리는 새로운 dex compiler 를 사용할 수 있다. D8 은 compile time 도 줄였고, .dex 파일 사이즈도 줄였다..Android 측에서 제공하는 자료에 따르면 Compile Time 은 약 30% 정도 줄었다. 파일 사이즈는 약 5% 정도 줄었다. ( 사이즈.. 2017. 8. 13.
[Effective Objective-C] #11 objc_msgSend 의 역할을 이해하라 [Effective Objective-C] #11 objc_msgSend 의 역할을 이해하라 출처 : Effective Objective-C -Objective-C 에서 많이 하는 일 중 하나는 객체의 메서드를 호출하는 것이다.Objective-C 용어로는 메시지를 전달한다고 한다.메시지는 이름 또는 선택자(selector)가 있다.또 인자를 받고 값을 반환할 수도 있다. -Objective-C 가 C 를 포함하기 때문에 C 에서 사용하는 정적 바인딩과 동적 바인드 함수 호출을 이해하는 것부터 시작해야 한다.정적 바인딩은 호출되는 함수가 컴파일 시간에 정해지는 것을 의미한다.동적 바인딩은 다음과 같은 경우를 이야기한다.호출될 함수를 실행 시간 전에는 알 수 없기 떄문이다. void printHello().. 2017. 8. 13.
[Effecitve Objective-C] #2 헤더에 헤더를 포함하는 것을 최소화하라 [Effecitve Objective-C] #2 헤더에 헤더를 포함하는 것을 최소화하라 출처 : Effective Objective-C - Objective-C 는 C, C++ 처음 헤더 파일과 구현 파일을 사용한다. Objective-C 로 클래스를 작성할 때 쓰는 표준적인 방법은 클래스 이름 뒤에 확장자가 .h 인 헤더 파일과 .m 인 구현 파일을 생성하는 것이다. // header #import @interface EOCPerson : NSObject @property (nonatomic, copy) NSString *nane @end // implementation #import “EocPerson.h" @implementation EOCPerson @end - Foundation.h 는 Obje.. 2017. 7. 17.
반응형