XCODE2011.05.16 00:42

기본 문법 #1

[object message:parameter];

//C style

DrawMyGradient(myView, aquaGradient, 0.0, 1.0, YES);

//Objective - c

[myview drawMyGradient:aquaGradient formValue:0.0 toValue:1.0 opaque:YES];


-(void)drawMyGradient:((CGGradientRef)gradient fromValue:start toValue:end opaque:opaque  //메소드 선언


기본 문법#2

//C Style

SubStringFormTo(sourceStr, &destStr, 2, 5); //위에서 타입을 정하고 메모리 얼록하고 여기다가 넣어달라

//O

NSString *destStr = [sourceStr subStringFrom:2 to:5];

long hash = [[sourceStr subStringFrom:2 to:5] hash]; //hash라는 메소드를 또 던진다


-(NSString *)subStringFrom:(int)from to:(int)to


오브젝트의 생성과 소멸

리테인 카운트 관리    //생성시점과 소멸시점을 관리

//person 클래스의 me 오브젝트를 만들고 없애기

Person *me = [[Person alloc] init];초기화     //리테인 카운트 1 생명줄!

[me retain];                                             //리테인 카운트 2

[me release];                                          //리테인 카운트 1

[me release];                                         //리테인 카운트 0

alloc -> release 해줄 필요, retain 해주지않은건 release 해줄 필요가없음


클래스 선언

.h 확장자를 가지는 파일

//헤더의 시작 interface  Person 클래스이름 NSObject는 슈퍼클래스

@interface Person : NSObject <NSCopying> {    //person은 NSObject의 서브클래스

int age;                          //instance변수 IVAR

 NSString *name;

}


-(void)singAsong:(Song *)song; //메소드선언 리턴타입 보이드 매개변수로 Song을 받는다

@end


클래스의 구현

.m 확장자를 가지는 파일


@implementation Person


-(void)singAsong:(Song *)song

{                                                       //cocoa object

NSlog(@""&@ can sing a song", name);      //NSlog가 있고 C에있는 printf와 유사하다, 중간중간에 token을 사용할 수 있다. 

}

@end


코딩 규약 - 이름 짓기

첫 글자를 대문자로

TheSinger.proj   Person.h / Person.m


nameOfPerson

ageOfPerson

addressOfPerson

//매개변수이름도 첫글자 소문자로,


-(void)singASong:(Song *)song


아이폰은 singleWindow




출처 : http://blog.naver.com/PostView.nhn?blogId=naoh14&logNo=10100421043

'XCODE' 카테고리의 다른 글

아이폰 개발 Xcode 기본문법 #1,#2  (0) 2011.05.16
xcode에서 iphone app 이름 변경  (0) 2011.04.09
Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
Posted by 오늘마감
XCODE2011.04.09 11:15
xcode에서 iphone app 이름 변경
 Project Info 에서 Product Name 항목을 찾아 앱 이름을 변경하면 PRODUCT_NAME 환경변수가 적용되어
 앱 이름을 바꿀수 있다고 하는데, 안된다.
 {project_name}-info.plist 파일을 열어서 CFBundleDisplayName key에 변경하려는 app name을 설정한다. 
 아주 잘된다.
 
<dict>
   <key>CFBundleDevelopmentRegion</key>
   <string>English</string>
   <key>CFBundleDisplayName</key>
   <string>new app name here...</string>


출처 : http://blog.naver.com/PostView.nhn?blogId=saturna&logNo=60110195877

'XCODE' 카테고리의 다른 글

아이폰 개발 Xcode 기본문법 #1,#2  (0) 2011.05.16
xcode에서 iphone app 이름 변경  (0) 2011.04.09
Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
Posted by 오늘마감
XCODE2011.04.09 11:14
iOS4에 맞춰 GM Seed가 나왔길래 냅다 깔았더니 3.x 지원이 잘 안된다..

그냥 이전껄로 다시 설치해야할 듯.. ㅠ_ㅠ

Xcode 삭제 방법..


sudo /Developer/Library/uninstall-devtools --mode=all




출처 : http://blog.naver.com/PostView.nhn?blogId=neon815&logNo=150087855602

'XCODE' 카테고리의 다른 글

아이폰 개발 Xcode 기본문법 #1,#2  (0) 2011.05.16
xcode에서 iphone app 이름 변경  (0) 2011.04.09
Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
Posted by 오늘마감
TAG XCode, 삭제
XCODE2011.04.09 11:14

프로젝트를 생성하고 좌측창을 보게되면 다음과 같이 표시가 된다. 내용을 살펴보면 다음과 같다.

 

* Classes

작성한 대부분의 코드는 여기에 들어가게 된다. Objective-C의 원래 있어야 할 곳이다. 코드 정리를 위해 Classes 폴더 하위로 폴더를 추가 생성해도 된다.

 

* Other Sources

Objective-C 클래스가 아닌 소스 코드의 위치이다. 새 아이폰 어플리케이션이 제작되면 2개의 파일이 생성된다.

프로젝트명.pch -> 미리 컴파일한 헤더(precomplied header'를 의미하며 프로젝트에서 사용하는 외부 프레임워크의 헤더파일 목록이다.

Xcode에서 이 파일이 담고 있는 헤더들을 미리 컴파일하는데 이렇게 되면 build를 했을경우 컴파일 하는 시간이 줄어든다. 가장 일반적으로 사용하는 헤더 파일들은 이미 포함되어 있기 때문에 신경쓰지 않아도 된다.

main.m -> main() 메소드가 있는곳으로 보통은 수정하지 않는다.(아이폰 어플리케이션에서)

 

* Resources

애플리케이션의 일부로, 코드가 아닌 파일들을 담고 있다.아이콘, 이미지, 소리, 동영상, 텍스트, 기타 프로그램 수행상의 프로퍼티 리스트 등이 포함된다. 어플리케이션은 각각의 샌드박스에서 실행되므로 필요한 모든 파일을 여기에 넣어야 한다. 이는 허가된API 이외에는 다른곳의 파일에 접근할수 없기 때문이다. 이 폴더에는 기본적으로 3가지 항목이 포함되어 있다.

프로젝트명Controller.xib -> 인터페이스 빌더에 대한 내용을 저장하고 있다.

프로젝트명-Info.plist -> 애플리케이션 정보를 담는 프로퍼티 리스트이다.

MainWindow.xib -> 애플리케이션의 기본 인터페이스 빌더파일이다. 애플리케이션이 간단한경우 보통 손을댈 필요가 없다.

 

* Framework

코드는 물론 이미지나 소리팡일들과 같은 자원들이 담긴 특별한 종류의 라이브러리이다. 이 폴더에 추가된 프레임 워크나 라이브러리는 애플리케이셔넹 링크되고, 코드에서 그 프레임워크나 라이브러리의 객체, 함수, 자원을 사용할 수 있다. 기본적으로 사용되는 프레임워크들과 라이브러리들은 기본적으로 링크되므로 추가작업은 필요없다. 하지만 추가적인 라이브러리나 프레임워크는 추가 시켜야 한다.

 

* Products

프로젝트가 생성한 애플리케이션을 담는다. 프로젝트명.app이라는 항목을 볼 수 있는데 이는 프로젝트가 생성한 결과물이다.



출처 : http://blog.naver.com/PostView.nhn?blogId=khagaa&logNo=30085410798

'XCODE' 카테고리의 다른 글

xcode에서 iphone app 이름 변경  (0) 2011.04.09
Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
새로운 개발툴 XCODE 4  (0) 2011.04.09
Posted by 오늘마감
XCODE2011.04.09 11:13
출처 - http://www.cocoadev.co.kr/55






프로젝트 진행 시에 다수 작업, 디버깅, 백업의 의미로 버젼관리는 매우 중요합니다. Xcode에서는  CVS, Subversion, Perforce, 3종류의 SCM(Software Configuration Management) 시스템을 지원합니다.

CVS
오픈소스로 유닉스/리눅스 계열에서 가장 오랫동안 많이 사용하는 버젼관리 시스템입니다. OS X에는 기본으로 설치가 되어있어 바로 사용이 가능합니다.

Subversion
CVS를 대체하기 위해서 나온 버젼관리 시스템으로, CVS에 비해 많은 장점을 가지고 있습니다. 여기서는 Subversion을 이용해 보겠습니다.

Perforce
Perforce Software에서 제공하는 상용 버젼관리 툴입니다.

SVS와 Subversion에 관한 자세한 사항은 아래의 KLDP Wiki를 확인하시고, 여기서는 Xcode에서 Subversion을 사용하는 방법에 대해서 간단히 알아 보겠습니다.


1. Subversion 다운로드/설치

이곳을 클릭하시고 맥 OS X용 Subversion 설치파일(dmg)을 다운로드 받습니다.

현재 버젼은 1.4.4로 설치 프로그램을 실행하시면 간단히 설치하실 수 있습니다.

(소스코드설치를 원하시면 Subversion 사이트에 서 다운로드 받으실 수 있습니다.)

설치가 완료되면 /usr/local/bin/에 실행파일들이 위치합니다. .bash_profile의 PATH에 /usr/local/bin을 추가하시면 터미널에서 사용이 편리합니다.


2. 프로젝트에 Subversion 적용

저 는 Test란 프로젝트에 적용해 보겠습니다. 프로젝트명, 위치등은 각자 환경에 맞게 변경하여 작업하시면 됩니다. 우선 아래와 같이 저장소 디렉토리 svn_test를 생성합니다.

>/usr/local/bin/svnadmin create ~/svn_test


프로젝트를 가져오기 위하여 아래와 같이 tmp라는 임시폴더와 그 아래 trunk, branches, tags 디렉토리를 각각 생성합니다. 그 후에 cp 명령으로 적용시킬 프로젝트를 임시 디렉토리로 복사합니다.  [프로젝트 디렉토리]는 가져 올 프로젝트가 위치한 경로 입니다.

> mkdir tmp
> mkdir tmp/Test
> cd tmp/Test
> mkdir trunk
> mkdir branches
> mkdir tags
> cp -r [프로젝트 디렉토리] ~/tmp/Test/trunk


이 제 svn_test 저장소로 프로젝트를 저장합니다. [계정아이디]는 현재 계정 아이디를 입력하시면 됩니다. 아래의 이미지를 클릭하시면 확대하여 확인하실 수 있습니다.

>/usr/local/bin/svn import ~/tmp/Test file:///Users/[계정아이디]/svn_test --message 'Start...'



그 후에 작업할 디렉토리로 프로젝트를 가지고 옵니다. [프로젝트 디렉토리]는 Test 프로젝트를 저장소로 부터 가져 올 디렉토리이며 전 ~/Projects란 디렉토리로 설정하였습니다. 위와 같이 아래의 이미지를 클릭하여 보시면 이해가 빠르실 겁니다.

> cd [프로젝트 디렉토리]
> /usr/local/bin/svn checkout file:///Users/[계정아이디]/svn_test Test


임 시 폴더를 아래와 같이 삭제하고,  확인을 위하여 Xcode를 실행합니다.

> cd ~/tmp/
> rm -fR Test/


3. Xcode 설정 및 확인


이제 Xcode의 Open메뉴에서 터미널에서 설정하였던 디렉토리의 trunk/[프로젝트명]에서 프로젝트 파일을 가지고 옵니다. 저는 Projects/Test/trunk/Test로 되어 있습니다.

프로젝트 정보창을 열어 Genral  메뉴 하단의 SCM 설정을 아래와 같이 Subversion으로 선택하고 Enable SCM을 체크합니다.

이제 소스코드를 수정하여 봅니다. 확인을 위하여 아래와 같이 기존 소스에 "NSLog..." 라인을 추가하였습니다.

이제 Xcode의 SCM 메뉴에서 Compare With Revision... 을 실행합니다. 비교할 버젼을 선택한 후 [Compare] 버튼을 클릭하시면 이전 버젼과 현재 파일의 차이점을 아래와 같이 확인하실 수 있습니다.

이 제 SCM 메뉴의 Commit Changes... 을 클릭하여 현재 상태를 새로 저장합니다. 변경에 대한 간단한 메시지를 작성한 후 [commit] 버튼을 클릭합니다. Get SCM Info를 클릭하시면 아래와 같이 Test.m 파일에 관한 버젼 히스토리를 확인할 수 있습니다.




출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085698583

'XCODE' 카테고리의 다른 글

Xcode 삭제  (0) 2011.04.09
[Objective-C] Xcode프로젝트 창  (0) 2011.04.09
[펌] Xcode 에 Subversion 적용하기  (0) 2011.04.09
XCODE용 디버그 메크로  (0) 2011.04.09
새로운 개발툴 XCODE 4  (0) 2011.04.09
[OSX] Xcode 맥과 아이폰 프로그래밍의 준비  (0) 2011.04.09
Posted by 오늘마감
XCODE2011.04.09 11:13
펌글: http://gyuha.tistory.com/354

xcode로 cocoa(Objective-C) 프로그램 제작 중.
디버그 매크로가 필요해서 작성했습니다.

필요 하신 분들은 참고 하세요.


//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
// Debug
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define DEBUG_ON  1 // 0 : Debug Off, 1 : Debug On

#if DEBUG_ON
#define debug(format, ...) NSLog(format, ## __VA_ARGS__);
#define DEBUG(format, ...) NSLog(@"[%s:%d:%s] : %@", \
                                [[[[NSString alloc] initWithBytes:__FILE__ length:strlen(__FILE__) encoding:NSUTF8StringEncoding] lastPathComponent] UTF8String] ,\
                                __LINE__, __FUNCTION__, [NSString stringWithFormat:format, ## __VA_ARGS__]);
#else    
#define debug(format, ...) 
#define DEBUG(format, ...)
#endif


#define debugRect(rect) debug(@"%s x:%.4f, y:%.4f, w:%.4f, h%.4f", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)
#define debugSize(size) debug(@"%s w:%.4f, h:%.4f", #size, size.width, size.height)
#define debugPoint(point) debug(@"%s x:%.4f, y:%.4f", #point, point.x, point.y)

참고 사이트를 보면, CFShow로 콘솔창에 출력을 할 수도 있습니다. 날짜시간과 어플리케이션도 출력하지 않고 깔끔하게 출력해 줍니다.
하지만, CFShow는 UTF8을 지원하지 않아서, 한글 출력에 문자가 있더군요 ㅜ.ㅜ
그래서 위와 같이 제작을 했습니다.
혹시, 난 영어 잘 해서, 디버깅 할 때 한글 필요 없다 하시는 분들은, 아래 코드를 사용하세요 ^^*

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
// Debug
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define DEBUG_ON  1 // 0 : Debug Off, 1 : Debug On

#if DEBUG_ON
#define debug(format, ...) CFShow([NSString stringWithFormat:format, ## __VA_ARGS__]);
#define DEBUG(format, ...) CFShow([NSString stringWithFormat:@"[%@:%d:%s:%@]", \
                                            [[[NSString alloc] initWithBytes:__FILE__ length:strlen(__FILE__) encoding:NSUTF8StringEncoding] lastPathComponent] ,\
                                            __LINE__, __FUNCTION__, [NSString stringWithFormat:format, ## __VA_ARGS__]]);
#else    
#define debug(format, ...) 
#define DEBUG(format, ...)
#endif


#define debugRect(rect) debug(@"%s x:%.4f, y:%.4f, w:%.4f, h%.4f", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)
#define debugSize(size) debug(@"%s w:%.4f, h:%.4f", #size, size.width, size.height)
#define debugPoint(point) debug(@"%s x:%.4f, y:%.4f", #point, point.x, point.y)

뭐.. 필요 하신 분들은 대충 섞어서, 한글용, 영문용으로 합쳐서 사용하셔도 되겠네요 ^^;

참고 :


출처 : http://blog.naver.com/PostView.nhn?blogId=trimen&logNo=40113324399
Posted by 오늘마감
XCODE2011.04.09 11:09

기사 요약 및 의견 :

 

맥용 앱스토어 개발에도 염두해 두고 나오는 새버전 같습니다.
개발환경 또한 점점 좋아지고 있네요.

가장 큰 특징을 정리해 보자면

- 싱글윈도우, Interface Builder inside
개발툴이 xCode 와 Interface Builder로 나뉜데다가 각각의 윈도우가 중구난방으로
화면을 차지 했는데 마이크로소프트의 비주얼 스튜디오처럼 한 위도우에 화면을 분할해서
보기 깔금하게 정리되고, xCode 와 Interface Builder가 통합되었습니다. 
또한 화면디자인시 픽셀단위로 하기 쉽도록 그리드(모눈종이)도
지원을 해서 편리해 졌네요. 

- LLVM Compiler 2.0, new Debugger
컴파일러와 디버거의 기능 및 속도의 향상.

- Fix it, Version Editor
코딩시 문법적인 오류뿐만 아니라 실시간으로 논리적인 오류도 잡아주는 Fix it,
버전별로 2개의 소스를 손쉽게 관리할 수 있는 Version Editor.
 
- Assistant
클래스상속 관계나 인터페이스 등을 다이어그램으로 보기쉽고 편하게 관리할 수 있습니다.

자세한 내용은 아래의 사이트에서 참고 하세요.

출처(URL) : 
http://developer.apple.com/technologies/tools/whats-new.html


출처 : http://blog.naver.com/PostView.nhn?blogId=mirnae&logNo=100115655741
Posted by 오늘마감
XCODE2011.04.09 11:09

C 와 Objective C 를 공부할까 하고 보니 개발환경이 필요해졌습니다.

매킨토시를 가지고 있다면 그대로 시작하면 될거구요, 아니라면 피씨에 VMWare 를 설치하고

그 위에 OSX 를 올릴 수도 있습니다. http://cafe.naver.com/paramsx/2006

 

어느 쪽이든 준비가 되었다면 Xcode 를 설치해봅시다.

Xcode 는 맥에서 제공하는 IDE 로 OSX 와 아이폰용 어플을 개발하기 위한 툴이네요.

 

기본 OSX 의 설치가 끝났다면 DVD 의 선택설치 폴더를 열어서 Xcode 인스톨러를 실행시켜도 되구요,

http://developer.apple.com/mac/ 에 가서 간단한 설문에 답하고 애플 아이디를 만들어

개발자로 등록한 다음 다운받아도 됩니다. 아이폰용 SDK 가 필요하다면 OSX 의 DVD 에는 포함되어 있지

않으므로 처음부터 위 사이트에 가서 풀버전으로 다운받는게 좋을거 같아요.

 

설치가 끝나면 Xcode 를 찾아서 실행시키면 됩니다. 위치는 /Developer/Applications/ 에 있어요.

 

 

잘 모르겠다 싶으면 그냥 파인더를 열고 좌측 메뉴에서 하드디스크를 클릭한 다음,

Developer 폴더와 Applications 폴더를 차례로 클릭해 들어가면 됩니다.

 

 

 

여러가지 개발툴이 보입니다만, 당장은 Xcode 에만 관심을 가지면 됩니다.

 

 

 

실행시키면 위와 같은 환영화면이 나타납니다.

제가 C 를 공부하기 위해 고른 책이 윤성우님의 “난 정말 C Programming 을 공부한 적이 없다구요!” 입니다.

http://cafe.naver.com/paramsx/1974

 

흔히들 쓰는 윈도우 환경이나 Visual C++ IDE 를 고르지 않은 이유는 우선 목표로

Objective C 의 공부를 염두에 두고 있기도 하지만 또 약간 마이너한 성격이기도 해서입니다.

 

매킨토시의 Xcode 에 포함된 컴파일러는 GCC 입니다. 리눅스와 매킨토시! 근사하지 않습니까? ^^

“난 정말...” 책을 공부하는 중에 Visual C++ 가 C99 표준을 잘 준수하지 않고 있다는 걸 보면서

더더욱 마음이 확고해졌습니다. 마소의 툴은 뭐랄까요? 강력하긴 하지만 절대강자의 오만함도 느껴지는거 같아요.

 

비록 매킨토시 개발서들은 Xcode 의 편리함과 강력함에 대해 칭찬을 하고 있지만,

주력으로 Visual C++ 를 사용해온 개발자들은 디버깅 기능이라든지 여러 면에서

마소의 툴들을 따라가지 못한다고들 하는 거 같습니다.

 

저야 어디까지나 취미로서의 프로그래밍이니, 예쁜 쪽으로 갑니다. ^^

 

각설하고 위 화면에서 Create New Xcode Project 버튼을 누릅니다.

 

 

 

탬플릿 선택은 다른 여타 개발툴들과 거의 비슷한 인터페이스인거 같아요.

OSX 의 Application 에서 Command Line Tool 을 고르세요. 언어는 C 입니다.

윈도우 환경이라면 콘솔 응용 프로그램 선택하는 거랑 같습니다.

 

 

 

프로젝트명과 저장할 위치를 선택하는건데요,

저는 C Study 라는 이름의 프로젝트를 데스크탑 화면에 저장하도록 선택했습니다.

 

 

 

그러고 나면 위와 같은 화면이 뜹니다.

기본 main.c 라는 샘플 프로그램이 들어있네요.

 

 

 

새 프로그램 작성을 위해서 좌측 source 폴더에 마우스 우측 버튼을 클릭한후

ADD 에서 New File 을 선택합니다.

 

 

 

탬플릿 선택화면에서 C 를 고릅니다.

 

 

 

오버플로우와 언더플로우 관련 예제를 입력하고 실행시켜볼 생각이어서

제목을 flow 로 정하고 Finish 버튼 눌렀습니다.

 

 

 

우하에 보이는 소스코드는 “난 정말...” 책 107페이지의 예제 프로그램을 약간 수정한겁니다.

책은 int 형 변수의 최소값에 대해 오자가 있더군요. 제대로 수정해서 어떻게 반응하는지 실행시켜 볼겁니다.

 

실행전에 화면을 볼 수 있는 콘솔 창을 열어야 돼요.

Xcode 메뉴에서 Run 을 선택하고 쭉 내려가면 Console 이 있습니다.

 

 

 

자... 위 예제 프로그램의 실행화면입니다.

int 형 데이터에서 2147483647 에 1을 더하면 -2147483648 이 되고

반대로 -2147483648 에서 1을 빼면 2147483647 이 되는 거 신기합니다. ^^

 

MSB 를 두고 2의 보수로 양수와 음수를 표현하기 때문이라고 이해했습니다.

 

자 이걸로 매킨토시에서 C 를 공부할 수 있는 기본 준비는 완료되었습니다.

우리 책으로 윤성우님의 “난 정말...” 을 보고 있다고 말씀드렸구요, 살짝 살짝 컨닝용으로

Dave Mark 의 Learn C On The Mac http://cafe.naver.com/paramsx/1991 도 참고로 하고 있습니다.

 

 

 

Xcode 에서 오브젝티브 C 를 공부할 땐 위 과정에서 아주 조금 차이가 납니다.

 

 

New Project 만들기에서 커맨드라인 툴의 타입을 Foundation 으로 합니다.

 

 

 

Xcode 화면이 책에서 보던거랑 많이 달라져서 좀 헷갈렸습니다만,

코코아 클래스의 오브젝티브 C 클래스를 선택하면...

 

 

 

아까처럼 제목을 입력하는 창이 뜹니다. 오브젝트 C 의 확장자는 m 이에요.

Hello 프로그램을 한번 만들어볼께요.

 

 

 

위쪽의 주석라인은 자동생성입니다.

 

오브젝티브 C 는 #include 대신에 #import 가 바로 눈에 띄죠.

stdio.h 대신에 코코아의 foundation 프레임웍을 포함하고 printf 대신 NSLog 함수를 써서 생소하게 보일지도 모르지만,

Objective C 야말로 정통 C 의 수퍼셋이랍니다. 원래의 C 언어에 스몰토크의 객제지향 개념이 결합된것 뿐이래요.

 

그래서 그냥 C 스타일로 코딩해도 아무 문제없이 컴파일 된답니다.

C++ 만 해도 에러나 오류가 난다지요?

 

콘솔 창에 정상적으로 안녕, 세상! 메시지가 뜨는걸 확인했습니다.

 

참고로 할 만한 도서는 Mark Dalrymple 과 Scott Knaster 의 Learn Objective C On The Mac

http://cafe.naver.com/paramsx/1976 (오브젝티브 C 2.0, 비제이퍼블릭) 이나

 

Stephen G. Kochan 의 Programming in Objective-C 2.0 이 괜찮은 거 같아요.

http://cafe.naver.com/paramsx/1979 (프로그래밍 오브젝티브 C 2.0, 인사이트)

 

다른 책도 많겠지만 일단 저 두권은 국내에 번역판이 있으니 보기가 수월합니다.

건투를 빌어요. ^_^



출처 : http://blog.naver.com/PostView.nhn?blogId=redflaghk&logNo=40119172584
Posted by 오늘마감
XCODE2011.04.09 11:09

출처 : http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&keywords=%C0%D0%C0%BB%B0%C5%B8%AE%3B%B5%F0%BA%A7%B7%CE%C6%DB+%C7%C3%B7%AF%BD%BA&page=1&wr_id=36298

새로운 개발 환경 Xcode 4 집중리뷰 #2

지난 호에 이어 Xcode 4를 활용해 여러 가지 앱을 만들어 보자. 외형적으로 보기에 Xcode 4로 만든 앱에 특별히 다른 점은 없다. 하지만 개발자의 입장에서 보면 좀 더 편리한 환경에서 쾌적하게 개발할 수 있다는 장점이 있다.

안경훈 linuxgood@gmail.com | 리눅스와 맥OS에 관심이 많으며, 모바일 디바이스에서 동작되는 사용자 중심의 프로그램을 개발하는 것에 흥미를 가지고 있다. 현재 삼성SDS에서 근무 중이다.

지난 호 내용을 기반으로 이번에는 Xcode 4를 사용해 실제로 몇 가지 애플리케이션 기능들을 작성해 보자. 참고로 이 글을 쓰는 동안 Xcode 4 디벨로퍼 프리뷰(Developer Preview) 4 버전이 나왔다(2010.10.14).

이번 호에서 Xcode 4를 사용해 작성할 기능들은 다음과 같다.

- URL을 입력해 이미지 가져오기
- switch 버튼의 활용(On/Off 버튼)
- mp3 플레이하기(프레임워크의 활용)


<화면 1> Xcode 3 초기 화면


<화면 2> Xcode 4 초기 화면


<화면 3> Template 선택 화면(Ver 4)


<화면 4> Template 선택 화면(Ver 3)

Xcode 4 버전은 시작 시 나타나는 초기 화면이 <화면 1>과 같이 달라졌다. 항목이 좀 달라진 모습을 볼 수 있다.

‘Create a new Xcode project’를 선택해 새로운 프로젝트를 시작한다. 새로운 프로젝트 템플릿을 선택하는 화면은 별로 달라진 것이 없다(버전 4는 배경화면이 생겼다는 정도일 뿐).


<화면 5> 애플리케이션 정보 입력


<화면 6> 애플리케이션 정보 저장

‘View-based Application’ 템플릿을 선택하면서부터 버전 4의 달라진 점을 볼 수 있다. 버전 3에서는 바로 프로젝트를 저장하는 화면이 보였지만 버전 4에서는 Product Name이나 Company Identifier 등 버전 3에서 plist를 열어서 작성해야 했던 일부 항목들을 프로젝트를 시작하기 전에 입력할 수 있다.

또한 Xcode에서 사용되는 소스 컨트롤을 위한 형상관리 툴로 git를 선택할 수 있다(https://git.wiki.kernel.org/index.php/ GitDocumentation 참조). 버전 3에서는 Subversion을 디폴트로 사용했었다(버전 4에서도 물론 사용 가능하다). 체크박스를 선택하면 로컬 저장소(repository)를 만들 수 있는 선택 화면이 나온다.


<화면 7> 형상관리 툴의 선택

최초 화면은 지난 호에서 설명한 것처럼 버전 3과는 많이 다른 모습이다. 더욱 자세한 설명은 애플이 배포하는 문서를 참조하자(http://adcdownload.apple.com/Developer_Tools/xcode_ 4_developer_preview_4/xcode4_transitionguide.pdf, Apple developer 프로그램에 가입해서 로그인을 해야 볼 수 있는 문서다).


<화면 8> Xcode 에디터 초기 화면

일반적으로 개발 시에는 특정 기능만을 자주 사용하게 된다. 버전 4의 화면 여러 곳에서 사용자가 특정 기능을 세밀하게 설정할 수 있는 버튼들을 볼 수 있다. 사용자 설정이 가능한 기능들이 너무 많아서 처음 Xcode로 개발을 시작하는 개발자들은 어려울 수도 있을 것이다. 하지만 기능들을 살펴보면 유용한 것들이 매우 많다.

<화면 9>는 처음 프로젝트를 시작할 때 형상관리 툴인 git를 선택했기 때문에 실시간으로 변경된 코드를 비교할 수 있도록 보여주는 화면이다.


<화면 9> 소스코드 비교 화면

이제 앞에서 언급한 예제 프로그램들을 하나씩 만들어 보자.

URL 입력해 이미지 가져오기 
먼저 다음과 같은 형태로 뷰를 구성한다. 버전 4의 대표적인 특징인 Xcode 에디터 안으로 들어온 인터페이스 빌더를 사용해 만들 수 있다. 만약 이전 버전처럼 IB를 별도로 사용하려면 소스 트리에서 xib 파일의 오른쪽을 클릭해 ‘Open with External Editor’ 항목을 선택하면 된다.


<화면 10> 외부 IB 선택해 열기


<화면 11> 뷰 설정 화면

<리스트 1>과 같은 코드를 작성한다.

<리스트 1> maso11ViewController.h

<maso11ViewController.h>

#import <UIKit/UIKit.h>

@interface maso11ViewController : UIViewController {
   UIImageView* imgView;
   UIWebView* webView;
   UIButton* ViewURLimage;
   UISwitch* uswitch;
   UISlider* slider;
}

@property(nonatomic,retain)IBOutlet UIImageView* imgView;
@property(nonatomic,retain)IBOutlet UIView* webView;
@property(nonatomic,retain)IBOutlet UIButton* ViewURLimage;
@property(nonatomic,retain)IBOutlet UISwitch* uswitch;
@property(nonatomic,retain)IBOutlet UISlider* slider;
-(IBAction)showkImage:(id)sender;

@end

<connections> 버튼을 선택해 헤더 파일에서 선언한 각각의 Outlet 항목들과 showkImage라는 Action 함수를 연결한다. 연결 방법은 각각의 항목을 뷰 화면의 오브젝트들로 드래그하면 된다. 연결할 때 ‘File’s Owner’라는 아이콘을 먼저 선택해 둬야 <화면 12>와 같은 연결화면이 나온다.


<화면 12> 파일 Owner 화면


<화면 13> 각종 아이템 설정 및 연결

Action 함수를 연결할 때는 함수에 적당한 이벤트도 작성해 줘야 한다. 해당 함수(showkImage)를 ‘드래그 앤 드롭’하면 <화면 14>와 같은 이벤트 선택창이 나온다.


<화면 14> 이벤트 지정 화면

다음으로 <리스트 1>의 maso11ViewController.m에 <리스트 2>와 같이 코딩한다. 

<리스트 2> maso11ViewController.m

#import "maso11ViewController.h"

@implementation maso11ViewController

@synthesize imgView;
@synthesize ViewURLimage;
@synthesize webView;
@synthesize uswitch;
@synthesize slider;

-(IBAction)showkImage:(id)sender {
NSURL *aTempURL = [NSURL URLWithString: @"http://cafefiles.naver.net/20100910_53/16914752_1284122573453_
IncFx9_png/16914752_logoPixelImage_214253_1.png"];
NSData *aTempData = [NSData dataWithContentsOfURL:aTempURL];
imgView.image = [UIImage imageWithData:aTempData];
}
...

실행해 <View URL Image> 버튼을 누르면 <화면 15>와 같은 화면을 볼 수 있다.


<화면 15> URL 이미지 보여주기

switch 버튼의 활용(On/Off 버튼) 
<화면 15>에서 switch 버튼을 On/Off 한 후에 버튼을 터치할 때마다 그림이 보이거나 보이지 않도록 하려고 할 때 <리스트 3>과 같은 코드를 사용한다.

<리스트 3> Switch event 설정

-(IBAction)tip03Action:(id)sender{   
   if (uswitch.on == TRUE)
   {
      imgView.hidden = YES
   }
   else
   {
       imgView.hidden = NO
   }
}

 

<리스트 3>을 실행하면 <화면 16>과 같은 결과를 볼 수 있다.


<화면 16> Switch Objects 실행 결과

MP3 플레이하기(프레임워크의 활용)
이번에는 Xcode 4에서 프레임워크를 불러와서 활용하는 앱을 작성해 보자. 이 예제를 위해 MP3 파일을 재생하는 코드를 작성해 보자. MP3 파일을 플레이하기 위해서는 AVFoundation. framework를 추가해야 한다. Xcode SDK에는 여러 가지 기능을 하는 라이브러리 형태의 코드가 있는데, 이것을 프레임워크라고 한다. 버전 3에서는 <화면 17>과 같이 프레임워크를 추가할 수 있다.


<화면 17> 프레임워크의 선택

버전 3과 비교해서 달라진 점은 프레임워크를 파인더에서 드래그 앤 드롭으로 가져온다는 점이다. 이를 위해 다음과 같이 약간의 팁이 필요하다. 먼저 프레임워크 디렉토리에 있는 어떤 항목을 선택한 후 오른 쪽 클릭을 선택해 ‘Show in Finder’를 선택한다. 그 후 <화면 18>과 같이 파인더 창에서 폴더 자체를 Xcode 에디터의 트리 화면으로 드래그해 추가한다.


<화면 18> 프레임워크 선택 화면


<화면19> Finder 선택 화면

<화면 20>과 같이 프레임워크를 해당 프로젝트로 복사할 것인지 묻는 화면이 나온다.


<화면 20> MP3 파일 추가 후 화면

추가된 후에는 <화면 21>과 같은 화면을 볼 수 있다. 이제 MP3 파일을 플레이하기 위한 프레임워크를 사용할 준비가 된 것이다.


<화면 21> 프레임워크 선택 화면

이 예제를 위해서는 MP3 파일이 하나 있어야 한다. MP3 파일도 프레임워크를 추가할 때처럼 파인더를 통해 프로젝트에 넣으면 된다. da.mp3라는 이름으로 추가했다.

뷰는 이전에 사용한 것을 그대로 사용하고 버튼에 이벤트를 재설정하겠다. 프레임워크를 추가한 후에는 다음과 같이 헤더 파일을 프로젝트에 include하는 코드를 작성해야 한다.

#import <AVFoundation/AVAudioPlayer.h>

이후에 실제로 구현될 Action 함수에 <리스트 4>를 추가한다.

버튼을 터치하는 순간 da.mp3가 실행될 것이다.


<화면 22> 에디터에서 해당항목을 보여준다.

 

<리스트 4> mp3 Play

NSString *path = [[NSBundle mainBundle] pathForResource: @"da" ofType:@"mp3"];

AVAudioPlayer* fAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

[fAudio play];

Xcode 4의 리소스 확인
버전 4에서는 <화면 22>처럼 멀티미디어 리소스가 포함됐을 경우 즉시 확인할 수 있도록 간단한 정보를 보여준다. <화면 22>는 MP3 파일에 대한 정보를 보여주는 화면인데, 실제로 <play> 버튼을 누르면 음악이 연주된다.

Xcode 4의 Organizer Devices 항목
Organizer는 아이폰 사용 중에 발생한 여러 가지 유용한 정보나 사용자 인증서 파일 등의 정보를 보여주는 프로그램이다. 이 프로그램에서 개발 시 필요한 여러 가지 정보들을 살펴볼 수 있는데, <화면 22>는 아이폰에 올려진 프로그램이 실행되면서 남긴 로그를 보여주는 화면이다.

여기서 개발자는 프로그램이 이유 없이 죽는 이유나 해당 파일의 실행 위치 정보, 사용했던 라이브러리, 아이폰 OS 버전, CPU에 따른 코드타입, 실행된 프로세스의 개수 등 아이폰에서 일어났던 모든 사항들을 들여다 볼 수 있다. 심지어 메모리가 부족해 실행되지 못했던 상황까지도 체크할 수 있다. 그리고 아이폰에서 사용 중인 애플리케이션을 아이콘과 리스트 타입으로 볼 수 있으며, 삽입(Add)과 삭제(Remove)도 가능하다.

Repositories 항목
여기서는 형상 관리 도구인 git를 사용해서 개발 중인 파일의 변경 정보 등을 보여줄 수 있다.


<화면 23> Device의 각종 정보 취득 화면


<화면 24> 사용자 정보 입력창


<화면 25> 버전 컨트롤 화면

Xcode 4에서는 디폴트 형상관리 툴로 git를 사용한다. <화면 24>에서 보는 것처럼 사용자 정보와 개발 중에 변경했던 소스의 정보를 보여준다. 사용자별로 설정이 가능하고 로그인 후 사용이 가능하다. 사용자 이름을 선택하면 사용자의 기본 정보를 변경할 수 있는 화면이 나온다.

Projects 항목
프로젝트 자체에 대한 다양한 이력정보를 보여주는 항목이다. 실행될 때 디렉토리 위치나 현재 실행 중인지 또는 최종 실행 시간 정보 등을 보여줄 수 있다. 또한 해당 애플리케이션이 실행되면서 만들어낸 각종 메타데이터 등도 확인할 수 있다.


<화면 26> 사용자 정보 입력창

Archives 항목
애플 앱스토어에 올려진 애플리케이션의 유효성 여부를 판별하는 항목이다. 권한이 없는 앱을 실행하려고 하면 <화면 27>과 같은 경고 메시지가 나온다. 하단부에 실행 가능한 아이콘들이 자리잡고 있는 것을 볼 수 있다.


<화면 27> 실행 오류 발생 시 화면

Documentation 항목
각종 라이브러리 문서들을 버전별로 찾아볼 수 있도록 인터페이스를 제공해 준다.


<화면 28> 버전별 문서 파일


<화면 29> 실시간 에러 메시지

이번 호에서는 Xcode 4 버전을 실제로 사용하는 방법에 대해 알아봤다. code sense가 완벽하지 않은 점이나 프레임워크 등을 추가할 때 불편한 점, <화면 29>와 같은 실행 오류가 나는 경우 등 Xcode 4 버전은 아직까지 개선돼야 할 부분들이 몇 가지 보인다.



출처 : http://blog.naver.com/PostView.nhn?blogId=damanegi_kr&logNo=116338707
Posted by 오늘마감
XCODE2011.04.09 11:08

Xcode 로 파일을 생성하면 소스 코드 상단의 주석에 __MyCompanyName__ 가 계속 보인다. 이를 수정하는 방법은 다음과 같다.


* 터미널을 실행한다.

* 아래의 명령을 실행한다.


# defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions -dict ORGANIZATIONNAME "Company Name"


맥북을 사고 처음으로 쓰는 포스트군요. ^^



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