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 오늘마감

 

//현재일자 세팅 

NSCalendar *calendar = [NSCalendar currentCalendar];

unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents *comp = [calendar components:unitFlags fromDate:date]; 

 

//사용하기

[comp year]    //년도

[comp month] //월

[comp day]    //일

[comp hour]   //시

[comp minute]//분

[comp second]//초 

 



출처 : http://blog.naver.com/PostView.nhn?blogId=goldrushing&logNo=130086308063
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: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: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 오늘마감

Xcode Objective-C Text Macro Cheatsheet For iPhone Programmers

 





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

An overview about the iPhone SDK

The iPhone SDK was announced officially on March 6, 2008, the first beta release was on July 11, 2008 which demanded a firmware update for all iPhone and iPod users. The SDK continued to develop with time until the Beta3 update to the 2.1 SDK was released on August 8, 2008.

 

Here is a small timeline.

 

Date of release

SDK Version release

iPhone OS Version

March 6, 2008

First beta

1.2b1

March 27, 2008

Beta 2

2.0b2

April 8, 2008

Beta 3

2.0b3

April 23, 2008

Beta 4

2.0b4

May 6, 2008

Beta 5

2.0b5

May 29, 2008

Beta 6

2.0b6

June 9, 2008

Beta 7

2.0b7

June 26, 2008

Beta 8

2.0b8

July 24, 2008

First Beta for OS v2.0

2.1

July 30, 2008

Beta 2 update v2.0

2.1

August 8, 2008

Beta 3 update v2.0

2.1

 

The iPhone SDK package contents

 

The SDK is broken down to the following:

Cocoa Touch

The Cocoa Touch layer is one of the most important layers in iPhone OS. It comprises the UIKit and Foundation frameworks (UIKit.framework and Foundation.framework), which provide the basic tools and infrastructure you need to implement graphical, event-driven applications in iPhone OS.

It also includes several other frameworks that provide key services for accessing device features, such as the user’s contacts.

This framework is used to implement the core set of features.

  • Application management
  • Graphics and windowing support
  • Event-handling support
  • User interface management
  • Objects representing the standard system views and controls
  • Support for text and web content
  • Accelerometer data
  • The built-in camera (where present)
  • The user’s photo library
  • Device-specific information

 

Media

The graphics and media technologies in iPhone OS are geared toward creating the best multimedia experience available on a mobile device. More importantly, these technologies were designed to make it easy for you to build good-looking and -sounding applications quickly. The high-level frameworks in iPhone OS make it easy to create advanced graphics and animations quickly, while the low-level frameworks provide you with access to the tools you need to do things exactly the way you want.

  • OpenAL
  • Audio mixing and recording
  • Video playback
  • Image file formats
  • Quatrz
  • Core Animation
  • OpenGL ES

 

Core Services

The Core Services layer provides the fundamental system services that all applications use. Even if you do not use these technologies directly, every other technology in the system is built on top of them.

  • Networking
  • Embedded SQLite database
  • GeoLocation
  • Threads

 

OS X Kernel

The Core OS layer encompasses the kernel environment, drivers, and basic interfaces of the operating system. The kernel itself is based on Mach and is responsible for every aspect of the operating system. It manages the virtual memory system, threads, file system, network, and inter-process communication.

 

The drivers at this layer also provide the interface between the available hardware and the system frameworks that vend hardware features. Access to kernel and drivers is restricted to a limited set of system frameworks and applications. iPhone OS provides a set of interfaces for accessing many low-level features of the operating system.

Your application accesses these features through the LibSystem library. The interfaces are C-based and provide support for the following:

  • Threading (POSIX threads)
  • Networking (BSD sockets)
  • File-system access
  • Standard I/O
  • Bonjour and DNS services
  • Locale information
  • Memory allocation

Develop your first iPhone application:

Things you need before going any further:

  • A “MAC OS X” platform of version 10.5.3 or later. You can get an original MAC box or you can simply get one of the hacked versions of the MAC OS, for more information click here.
  • The iPhone SDK “Software Development Kit” you can get one from the iPhone developer program home page, or simply click here.
  • Xcode, the IDE “Integrated Development Environment” used to develop applications and software for MAC based platforms. Although one of Xcode’s goals is to reduce the time you spend writing code, you still devote a considerable part of your development in the text editor. To that end, the text and source editor provide many features with the aim of making your source-code editing a productive and efficient endeavor. Code folding, code completion, Edit All in Scope, Refactoring, and other features allow you to focus your attention on the right areas and to use your time as efficiently as possible. It’s packed with the iPhone installer, so no need to worry about it.
  • Interface builder, this application lets you design compelling user interfaces graphically. Your work is saved as nib files that your application loads at runtime. This means that you what you design is exactly what users of your application see; you work with the actual controls that iPhone OS places on the users’ screens. It also means that you spend less effort codifying the user-interface–related aspects of your application in source code. It’s also supplied in the SDK package.

 

 

Other developing applications you may use:

  • Debugger, as you start testing your application, you may need to step through your code to the cause of unexpected behavior. Xcode’s debugging facilities provide the usual debugging features, such as breakpoints, viewing variables, and so forth. But Xcode provides these and other debugging features right in the text editor. That is, you can make a change in your code, add a breakpoint, start your application, and perform most debugging tasks in the same window.
  • Instruments, as you near the end of the development process, you must ensure your application uses the resources of the device on which it’s running as efficiently as possible, so that battery power is not wasted and your application does not gather system resources unnecessarily. “Instruments” shows your application’s resource usage, including memory, CPU, and network, in a graphical timeline that lets you see how your application behaves over time.

The MVC design pattern:

The structure of iPhone applications is based on the Model-View-Controller (MVC) design pattern because it benefits object-oriented programs in several ways. MVC–based programs tend to be more adaptable to changing requirements—in other words, they are more easily extensible than programs that do not use MVC. Furthermore, the objects in these programs tend to be more reusable and their interfaces tend to be better defined.

In the MVC design pattern, the model layer consists of objects that represent the data your application manages. The objects in this layer should be organized in the way that makes the most sense for the data. External interactions with model objects occur through a well-defined set of interfaces, whose job is to ensure the integrity of the underlying data at all times.

The view layer defines the presentation format and appearance of the application. This layer consists of your application’s windows, views, and controls. The views can be standard system views or custom views you create. You configure these views to display the data from your model objects in an appropriate way. In addition, your view objects need to generate notifications in response to events and user interactions with that data.

The controller layer acts as the bridge between the model and view layers. It receives the notifications generated by the view layer and uses them to make the corresponding changes in the data model. Similarly, if the data in the data layer changes for other reasons (perhaps because of some internal computation loop), it notifies an appropriate controller object, which then updates the views.

Developing the iCalculator application:

Here is a fast overview of what we will do:

  • Creating the project.
  • Implementing the Model Object.
  • Implementing the Controller Object.
  • Implementing the View Object by use of the “Interface Builder”.
  • Customizing the app delegate to incorporate the view controller object, and add it to the application window.
  • Connecting the view controller to its view.
  • Finalizing the application and setting its icon.

 

Creating the project

1) Launch Xcode. You can find it in the developer folder > Applications > Xcode.

2) Choose File > New Project.

3) Choose from the iPhone OS templates.

4) Choose Window-Based Application.

5) Name your project “iCalculator”.

Figure 1: New Project.

 

Figure 2: The iCalculator Project.

Note:

iCalculator.app: The application binary, the project’s product. It’s in red because the product hasn’t been built yet.

 

iCalculatorAppDelegate.h, iCalculatorAppDelegate.m: The files that implement the application’s delegate.

 

MainWindow.xib: The nib file that defines the application’s main window. Despite its name, iPhone applications normally have only one window.

 

 

 

Implementing the Model Object

We will create a new class whose instance represents an object of the calculator, follow the following steps:

1) Click on the “Classes” folder.

2) Choose File > New File.

3) Choose Cocoa Touch Classes > NSObject subclass.

4) Name the class “iCalculator”, make sure that creating the header file option is selected.

5) Insert the following Code into iCalculator.h:

 

 

Figure 3: iCalculator.h.

 

 

6) Insert the following Code into iCalculator

 

Figure 4: iCalculator.m part I.

 

Notes for newbies:

1) The “retain” and “release” methods are used mainly in the memory management of iPhone applications, that’s because there isn’t any garbage collection in the iPhone OS.

 

Thus, memory management is done manually; you can’t simply call “dealloc” to free the resources and references of a certain object, because this object may contain references to other objects that will not be de-allocated, and thus will cause memory leaks, so we use retain which will increment the value of a certain variable for this instantiated object, and release decrements the value, and when it reaches zero, the referenced object is de-allocated.

 

For more information about this topic, read more about memory management in Objective C++ 2.0.

2) If ( Self = [ super init ] )

 

What does this mean? This means that init of the parent class “NSObject” function will be called and if self is not equals to null do the following.

 

Figure 5: iCalculator.m part II.

 

 

Figure 6: iCalculator.m part III.

 

Implementing the controller object:

1) Click on classes.

2) Choose File > New File

3) Choose iPhone OS> Cocoa Touch Classes > UIViewController subclass.

4) Name the class “iCalcViewController”.

5) Modify the iCalcViewController.h header file as the following:

 

Figure 7: iCalcViewController.h

 

6) Modify the iCalcViewController.m file as the following:

 

Figure 8: iCalcViewController.m part I.

 

 

Figure 9: iCalcViewController.m part II.

 

Implementing the View Object

To get users excited about your application, it should have the best user interface possible. Interface Builder allows you to build beautiful, more importantly, useful user interfaces by dragging controls from a library of user-interface elements and laying them out n a view as you want them to appear to the user, your user-interface designs are known nib files. Your application loads these resources at runtime to reconstitute the use interface you designed. This means that you can make substantial changes to the user interface layout (and even some behavior) without having to edit source code. This is the main benefit of the Model-View-Controller paradigm.

1) Expand the “Resources” folder.

2) Double click on “mainWindow.xib” and the interface builder will open.

3) From the interface builder choose File > New file.

4) Choose Cocoa Touch and then press on View.

 

Figure 10: iPhone OS UI templates.

 

5) Choose save, name it as “CalcView” and navigate till you reach the location of your project and save it under the “Resources” folder and press ok.

 

6) Xcode will ask you to update the project to accommodate the new file, confirm this process.

 

7) Press on the File’s Owner icon.

a. Choose Tools > Inspector.

b. Display the identity pane.

c. In the Class text field enter “iCalcViewController”, note that it will auto-complete.

 

And by this way, we’ve connected between our view object and the controller object.

 

 

Figure 11: “calcView”’s Components.

 

8) Press on the View icon.

a. Choose the Inspector Attribute pane.

b. Customize your view as you desire, here we changed the background’s color to black.

 

Figure 12: “calcView”’s View designer.

 

9) Add input and output controls to the view

a. Choose tools > Library.

b. In the organization pane, select Library > Cocoa Touch Plug-in > Inputs & Values.

c. Select the Text Field item and drag it to the View.

Figure 13: Drag and drop components.

 

 

d. Resize the text field, by enlarging it, such that it contained by most of the view’s width.

 

Figure 14: resize text field.

 

e. Display the Inspector Attribute pane.

f. Set the text field text to 0.

g. Set the alignment to right-align.

h. Set the title typeface and size, by setting the focus on the text field in the view > Choose Fonts, set it to bold and size 36.

Figure 15: Set font.

 

i. Add a rectangular button.

  • Choose “Round Rect Button” from the library and drag and drop.
  • In the inspector size pane, set the button’s width to 64 and height to 70.

Figure 16: Set font.

 

  • Connect the button’s “Touch Down” event to the “press:” action method of the “iCalcViewController” class.
  • Select the button in the view
  • Display the Inspector Attributes pane.
  • Set the title color to black.
  • Set the button title to 7.
  • Set the font size to 48.

Figure 17: Set button attributes.

 

j. Create the button grid:

  • Choose the button from the view.
  • Choose Edit > Duplicate.
  • Position the clone beside the original button.

Figure 18: Clone the button.

 

  • Select both buttons and do exactly as the previous steps.

Figure 19: Clone the two buttons.

 

  • Select the four buttons and with the same steps we can generate the following view.
  • But by changing the text of each button and making sure that the action event of each button is the “press” method

Figure 20: The final calculator view.

 

Editing the application delegate:

1) Double click on the iCalculatorAppDelegate.h to modify it, edit it to look like this:

Figure 21: iCalculatorAppDelegate.h.

 

2) Double click on the iCalculatorAppDelegate.m to modify it, edit it to look like this:

Figure 22: iCalculatorAppDelegate.m.

 

Connecting the View controller to the View

As mentioned before, we have connected between the view and the controller, but that was an initial connection.

We have to be more precise, for example we have to mention which controls do certain actions, and which preview certain data, so here is what we have to do:

1. In the CalcView.xib window, select the File’s Owner proxy (which represents an instance of the “CalcViewController” class).

2. In the Inspector Connections pane, connect the displayField outlet to the text field in the view.

Figure 23: Connecting the view with the controller.

 

3. Connect the view outlet to the view.

4. Save the “CalcView.xib” file.

Note: If you pressed on one of the buttons, you will find that their action event handler is already set, as we set it before during designing the view to the “press” function.

Setting the application icon

1. In Interface Builder, take a snapshot of the Calc button grid:

a) Place the pointer at the top-left corner of the grid.

b) Press Shift-Comand-4 and hold down the mouse button.

c) Drag the pointer to the bottom-right corner of the grid and release the mouse button.

Figure 24: Taking a snapshot.

 

Mac OS X places the snapshot file in your desktop using the name Picture 1.jpg (or a name with a higher number if you’ve captured other snapshots).

2. Rename the snapshot file, icon.jpg.

3. In the Groups & Files list, select Resources.

4. Choose Project > Add to Project.

5. Navigate to your Desktop directory and choose icon.jpg.

6. In the dialog that appears, ensure the copy option is selected, and click Add.

7. In the Groups & Files list, double-click Resources > Info.plist.

8. In the editor window, set the value of the Icon file key to icon.jpg,

Figure 24:Info.plist.

 

9. Save the Info.plist file.

Running your application

Build your application and run it on your simulator, if you have an iPhone connected to Xcode you can choose to deploy and run on it.

Please not that, you have to have a developer’s certificate from apple to develop for iPhones, which will cost you $99 or $299 a year depending on what kind of certificate you want, for more details click here.

 

Download Article Source Code Below (Must be registered user, registration is free!)

 



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

티스토리 툴바