GNU.org 페이지를 띄워 봤더니, 옛날과는 상당히 달라져 있다. 그중 가장 눈에 띄는 것이 GNUstep인데.. 이것은 아마도 Xcode Tools의 무료버전이 아닌가 싶다. 리눅스와 윈도우즈를 포함한 여러가지 운영체제에서 구동 가능한 GNUstep은 Objective-C의 대중화에 조금.....
1. Property list object Property list object는 (plist라고 약칭) 객체가 자신을 파일로 저장하고 이를 다시 복구할수 있는 메소드를 구현한 객체들을 말한다. 이런 클래스 종류로는 NSArray, NSDictionary, NSString, NSNumber, NSDate, NSData 와 이들의 muta.....
Formal Protocol - Formal Protocol은 a named list of methods 이다 - @protocol 키워드를 이용하여 선언한다 @protocol( ) methods @end - 클래스 선언에서 adopting 한다 @interface ClassName @end - Java의 인터페이스와 동일하며 모든 정의된 함수들을.....
Category의 활용에 대해서 좀더 자세히 알아보자 1) Category를 이용하여 Implementation을 분리하는 경우 일반적으로 interface 선언은 header 파일에, 구현은 .m 파일에 담는게 되며 @implementation 코드를 여러 .m 파일이 존재하게 할수는 없다. 예를 들어 AppKit 의.....
Category는 현존하는 클래스에 새로운 메소드를 추가하는 방법이다. Category는 다음과 같이 선언한다. @interface SomeObject (CategoryName) - Some method to add @end 이에 대한 구현은 @implementation SomeObject (CategoryName) - Method Implementation @end 가 .....
1. Value-Property Objective-C에서는 instant variable에 대한 accessor를 자동으로 설정해주는 property 가 존재한다. 예를 들어 다음 코드를 보자 testObject는 in_variable1,2에 대한 accessor들이 정의되어있고 구현 되어 있다. accessor 정의를 다음과 같이 @property.....
1. Object Initialization Object 생성을 위해서는 [SomeClass new] 를 이용하거나 [[SomeClass alloc] init] 을 사용한다. Cocoa에서는 new보다는 alloc -> init을 사용하기를 권장한다. [SomeClass alloc] 을 하게 되면 운영체제로 부터 그 object의 instance 변수들을 유지.....
* new, alloc, copy 등을 이용하여 오브젝트를 생성할때 생성된 오브젝트의 retain count는 1이며, 오브젝트가 다 사용되었으면 release 나 autorelease를 보내어 clean up 을 해야 한다. * 다른 메카니즘을 통해서 객체를 소유하고 있는 경우 (retain이 1 이고 autor.....
다음과 같이 description 이 정의된 객체에서 -(NSString *) description { NSString *description; description=[[NSString alloc] initWithFormat: @I am %d years old,4]; return (description); } 이 함수를 main 또는 owner 객체에서 이용할 경우 description의 me.....
1. Reference Counting ??Cocoa는 reference counting이라는 것을 이용하여 Object 대한 Reference 여부를 판단한다. 이를 retain counting이라고도 한다. Object가 alloc 또는 new 또는 copy message등을 이용하여 생성될때 retain count는 1로 설정 된다. Object에.....
앞에서 보았던 소스코드는 하나의 파일에 담겨졌으나 각 클래스에 따라서 각각 다른 파일로 분리가 가능하며 소스 코드의 양이 많아 질 경우 클래스별로 분리하는게 효율적이다. @interface 선언문은 *.h 파일에 담고, @implementation 의 구현문은 *.m 에 담는.....
Composition은 Object에서 다른 Object의 Reference를 가지고 있는 경우로 이를 접근하기 위한 accessor method와 Object를 설정하기 위한 setter method 그리고 상태를 변경하기 위한 mutator method들이 존재 한다. 이전 예에 다음의 코드를 포함해서 Engine과 Ca.....
이런 거를 Hooking이라고 표현해도 되는지 잘 모르겠다만... 가끔씩 카테고리를 사용해서 기존의 메소드를 덮어쓰는게 아니라 기존의 메소드를 그냥 놔두고 나의 코드를 삽입하고 싶은 경우가 있을 수 있다. LD_PRELOAD를 이용해서 원래 함수의 실행을 가로막.....
환경변수 NSObjCMessageLoggingEnabled를 YES로 세팅하고 코코아 응용프로그램을 실행하면 응용프로그램에서 발생하는 모든 Objective-C 메세징을 로그파일에 써준다. 로그파일은 /tmp/msgSends-PID. 하지만, 이거는 도움이 될 수가 없다. 워낙 많은 메세징이 발생하.....
The Objective-C 2.0 Programming Language.pdf 애플 개발자 사이트에 등록되어있는 Objective-C 2.0 Reference Doc.이다. (이렇게 함부로 올려도 되는 문서인지 모르겠으나;; 가입만 하면 공짜로 받을 수 있는 문서기 때문에... 별 문제 없을 거라 생각함 ㅡ.,ㅡa.....