아이폰어플개발정보2010. 8. 30. 10:07
아이폰 어플 간단한 코딩 따라해보기

과제B. WhatATool (Part I) (원본)

Objective-C의 문법은 스탠다드 C의 문법 + 약간의 Objective-C고유의 문법이라고 할 수 있으며 Objective-C자체는 많은 유용한 함수들을 제공한다.

여기서는 Objective-C의 기본 클래스들을 이용하여 간단한 로그를 찍어봄으로써 "코딩 맛보기"를 해본다.

1.Xcode를 기동하여 신규 프로젝트 생성에서 Command Line Utility > Foundation Tool 을 선택한다.

  (프로젝트 명은 WhatATool 이라고 해보자)

2.생선된 프로젝트 파일 일람중에 WhatATool.m을 열어본다.

  여기엔 이미 기본적으로 아래와 같은 main 함수가 만들어져 있다.

#import

int main (int argc, const char * argv[]) {

    NSAutoreleasepool * pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello World");

    [pool release];
    return 0;
}

이 상태로 실행해본다. 메뉴의 Build > Build and go 클릭.

성공했다고 나오지만 화면엔 아무 변화가 없다. Hello World는 어디에 찍히는 걸까? 로그파일?

정답은, 콘솔에 나온다.

콘솔은 메뉴의 Window > Console 을 클릭하면 보인다.

이제 이 프로젝트에 4가지 소스를 추가해보자.

<순서>

1.사용자 홈 디렉토리 찍어보기 (NSString 클래스 이용)

2.프로세스 ID 찍어보기 (NSProcessInfo 클래스 이용)

3.즐겨찾기 만들어보기 (NSMutableDictionary 클래스 이용)

4.Selector 의 이용과 Class 정보 보기

이 4가지 섹션에선 모두 NSLog 클래스를 이용하여 정보를 콘솔에 출력한다.

NSLog는 기본적으로 유저 메세지 앞에 시간, 프로세스명, 프로세스ID 등을 붙여준다.

   예 : 2008-09-23 13:49:42.275 WhatATool[360] Your message here.



출처 : http://blog.naver.com/PostView.nhn?blogId=katchup00&logNo=10075344314
Posted by 오늘마감

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 22. 17:52
과제B - 간단한 코딩 해보기

과제B. WhatATool (Part I) (원본)

Objective-C의 문법은 스탠다드 C의 문법 + 약간의 Objective-C고유의 문법이라고 할 수 있으며 Objective-C자체는 많은 유용한 함수들을 제공한다.

여기서는 Objective-C의 기본 클래스들을 이용하여 간단한 로그를 찍어봄으로써 "코딩 맛보기"를 해본다.

1.Xcode를 기동하여 신규 프로젝트 생성에서 Command Line Utility > Foundation Tool 을 선택한다.

  (프로젝트 명은 WhatATool 이라고 해보자)

2.생선된 프로젝트 파일 일람중에 WhatATool.m을 열어본다.

  여기엔 이미 기본적으로 아래와 같은 main 함수가 만들어져 있다.

#import

int main (int argc, const char * argv[]) {

    NSAutoreleasepool * pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello World");

    [pool release];
    return 0;
}

이 상태로 실행해본다. 메뉴의 Build > Build and go 클릭.

성공했다고 나오지만 화면엔 아무 변화가 없다. Hello World는 어디에 찍히는 걸까? 로그파일?

정답은, 콘솔에 나온다.

콘솔은 메뉴의 Window > Console 을 클릭하면 보인다.

이제 이 프로젝트에 4가지 소스를 추가해보자.

<순서>

1.사용자 홈 디렉토리 찍어보기 (NSString 클래스 이용)

2.프로세스 ID 찍어보기 (NSProcessInfo 클래스 이용)

3.즐겨찾기 만들어보기 (NSMutableDictionary 클래스 이용)

4.Selector 의 이용과 Class 정보 보기

이 4가지 섹션에선 모두 NSLog 클래스를 이용하여 정보를 콘솔에 출력한다.

NSLog는 기본적으로 유저 메세지 앞에 시간, 프로세스명, 프로세스ID 등을 붙여준다.

   예 : 2008-09-23 13:49:42.275 WhatATool[360] Your message here.



출처 : http://blog.naver.com/PostView.nhn?blogId=katchup00&logNo=10075344314
Posted by 오늘마감

댓글을 달아 주세요

오브젝트C2010. 6. 21. 09:30
[펌] Objective-C 코딩 스타일
[출처] - http://www.cocoadev.co.kr/181





새로운 언어를 익힐 때는 보통 해당 언어의 코딩스타일 가이드라인을 찾아 보거나, 원 제작자(사)의 문서나 예제에 사용된 소스의 코딩 스타일을 사용하는 경우가 많습니다.

저는 아직까지 Objective-C에 익숙하지 않아서 시작할 때 부터 애플에서 많이 사용하고 권장하는 형식으로 습관을 들일려고 하고 있습니다. 그런데 사소한 것이지만 애플의 샘플코드나 Xcode에서 생성해 주는 소스코드를 보면 조금씩 차이를 보이며, 이는 같은 코드 내에서도 스타일이 조금씩 다른 경우를 볼 수 있습니다.

* 스타일 1
/Developer/Examples/QuickTime/QTKit/QTKitPlayer/MovieDocument.m
-(BOOL)panel:(id)sender shouldShowFilename:(NSString *)filename
{
    if (isDir)
    {
        return YES;
    }
}
'{'과 '}'이 한라인을 차지하는 스타일은 Xcode의 C++을 사용하는 카본에서도 많이 볼 수 있습니다. 샘플 코드중에도 MS VC++의 MFC를 보는 듯한 코드를 자주 볼 수 있습니다. 아마 애플의 기존 C++ 프로그래머가 작성하지 않았나 하는 추측이 듭니다.

하지만 애플의 일반적인 코코아에 관련된 문서나 Xcode에서 생성해 주는 코드에는 이런 스타일은 흔하지 않은 것 같습니다.

* 스타일 2
/Developer/Examples/Quartz Composer/Applications/ImageFX/AppController.m
-(BOOL)performDragOperation:(id<NSDraggingInfo>)sender
{
    if(_sourceRef) {
        if(imageRef = CGImageSourceCreateImageAtIndex(_sourceRef, 0, NULL)) {
        }
    }
}
메소드의 '{'는 한 라인을 차지하고 메소드 내에서의 '{'는 같은 라인에서 사용하고 있습니다. if문 바로 뒤에 '('를 공백없이 사용하는 것과 타입(BOOL)과 함수명 사이에 공백을 둔 것을 제외하면 흔히 볼 수 있는 스타일 같습니다. 많은 예제와 Xcode가 생성한 코드, 그리고 많이들 보시는 Cocoa Programming for mac os x의 소스에서도 이 스타일을 사용하고 있습니다.

* 스타일 3
- (void)setTitle:(NSString *)newTitle {

    if (instanceVar != newTitle) {
        [instanceVar release];

        instanceVar = [newTitle copy];
    }
}
요즘 나오는 예제들과 코드에서는 주로 위와 같이 사용하는 경우가 많은 것 같습니다. 위의 코드는 Coding Guidelines for Cocoa 문서의 뒷부분에서 발췌한 것인데, 아마 애플에서는 저런 스타일을 지향하는 것 같습니다.

제가 주의 깊게 보는 곳은 메소드의  '-' 뒤에 공백이 오는지와 반환타입과 메소드명 사이에 공백이 오는지의 여부인데요. 위와 같이 '-' 뒤에는 공백을 두고 나머지는 공백 없이 쓰는 것이 더 많은 것 같습니다. 
 
개인적으론 2번째 스타일에다 if 뒤에 공백을 하나 두는 방식이 편한 것 같은데, 더 알아 보면서 남들이 많이 쓰는 형식으로 쓸려고 합니다.

Xcode의 샘플이나 생성된 코드의 스타일에 조금씩 차이를 보이는 것이 애플이 아주 소소한 부분은 개발자들의 취향에 맡기는 것인지, 각자의 고집이 반영된 것인지는 잘 모르겠습니다.

코코아에서 Objective-C의 코딩스타일 가이드라인은 ADCCoding Guidelines for Cocoa 문서를 참조하실 수 있습니다.




출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085699865
Posted by 오늘마감

댓글을 달아 주세요