클래스 구성

2개의 파일로 나뉨

SomeClass.h : 클래스의 인터페이스 정의, 공개 메소드, 인스턴스 변수
SomeClass.m : 실제적 구현 및 Private 메소드

 

클래스 인터페이스 구현

아래코드는 비디오클립 헤더 파일인 Clip.h

#import <foundation/Foundation.h>  //필요한 파일을 불러옴

@interface clip : NSObject  //NSObject의 하위클래스인 clip 클래스 정의를 시작
// 아래는 인스턴스 변수 정의
    int PlayCount;
    NSString *vid;
    NSString *title;
    NSString *orginalURL;
}

// 아래는 메소드 정의
+ clip;  // +는 클래스 메소드임을 뜻함
- (BOOL) isNewClip;  // -는 인스턴스 메소드를 뜻함
@end  // 클래스 정의가 끝났음

+는 NSString의 string처럼 객체를 생성시킬 때 사용하는 클래스 메소드 (팩토리 함수)

-는 인스턴스 메소드르 isNewClip은 사용자가 보지 않은 클립인지를 BOOL형 값으로 반환

 

클래스 구현

다음 코드는 Clip.m

@implementation Clip

- (BOOL) isNewClip
{
    return YES;
}

@end

@implementation과 @end 사이에 클래스의 실제적 하는 일을 구현

@interface에 구현하지 않은 메소드를 추가하면, 그 메소드는 Private이 되어 해당 클래스 내에서만 사용 가능

신고

인스턴스 변수를 프로퍼티로 선언하게 되면, 자동으로 접근자가 생성되는 등의 장점이 있다.

Clip.h의 인스턴스 변수를 프로퍼티로 선언한 코드 (굵은 글씨)

@interface Clip : NSObject
{
    int PlayCount;
    NSString *vid;
    NSString *title;
    NSString *originalURL;
}

@property (retain) NSString *vid;
@property (retain) NSString *title;
@property (retain) NSString *originalURL;

+ clip;
- (BOOL) isNewClip;
@end

@property를 이용해서 프로퍼티 정의함. (retain)은 Setter에 입력되는 값을 유지하라는 의미.

 

Clip.m 수정 코드

@implementation Clip

@synthesize vid;
@synthesize title;
@synthesize originalURL;


- (BOOL) isNewClip
{
    return YES;
}

@end

@synthesize는 Setter와 Getter를 자동으로 생성한다.

프로퍼티로 정의하면서 Setter와 Getter를 직접 정의해도 무방하다. 이 때는 직접 정의한 Setter와 Getter가 있으므로 자동으로 생성되지 않는다.

신고

2가지 방법이 있음.

첫 번째 : NSString *aString = [NSString string];
두 번째 : NSString *bString = [[NSString alloc] init];

바로 사용시에는 둘 간의 차이가 없으나 메모리 관리에서 차이가 있음.

첫 번째 방법은 string함수가 객체를 생성해 줌. 따라서 메모리 관리는 자동적임. 즉, 사용이 끝나면 자동적으로 반환됨. 단, 강제로 반환하면 에러를 발생시킴.

두 번째 방법은 수동으로 메모리 할당.
사용이 끝나면 꼭 반환해야 함.

신고

 

모든 인스턴스 변수는 Object-C에서 private 인 이유로 값을 가져오거나 설정하기 위해서는 접근자를 사용해야 함.

Object-C 2.0에서 점( . )을 이용한 접근이 추가되었음. (마치 public인 것처럼)

다른 객체지향언어에서도 그렇지만 개인적으로 setValue, getValue 형태의 접근자를 설정해 사용하는 것이 좋다고 생각함

 

Object-C 기존 방법

[objectA setTitle:@"안녕하이"];
NSString *title = [objectA title];

objectA에 setTitle이라는 접근자 사용

 

Object-C 2.0 에서 추가된 방법

objectA.title = @"안녕하이";
NSString *title = objectA.title;

*접근자: 변수에 접근하기 위한 메소드

신고

기본 호출 방법

[Object method];
[Object method:input];

Object : 오브젝트 명
method : 매소드
input : 입력 매개변수

 

값을 돌려 받을 때

output = [Object method];
output = [Object method:input];

객체를 돌려 받을 때

id newStringObject = [NSString string];
NSString *newStringObject = [NSString string];

둘은 같은 의미, 명확한 경우는 id를 사용하는 것도 나쁘지 않으나, 실수를 증가시킬 우려가 있음.

id : 모든 객체, 어떤 것이든 대체 가능함을 의미, 본래 포인터 타입이므로 *이 불필요
NSString : 클래스
string : 객체를 반환하는 NSString의 메소드

 

메시지를 중복으로 보내고 싶은 경우

(C언어의 function1(function2( )); 와 같이)

[objectA method:[objectB method]];

스택구조상 objectB가 먼저 수행된 후 objectA 수행

 

복수의 매개변수 사용

[objectA method: objectB method: objectC]

objectA가 objectB와 objectC를 가지고 수행, 복수개의 매개변수일 때는 : 로 구분

신고

이번에는 Xcode에 개발자 프로파일을 추가한다.

Xcode는 애플의 개발환경이며, Apple Iphone SDK를 설치하면 자동으로 함께 설치된다.
실행하기 위해서는 데스크탑(바탕화면)의 자신의 하드디스크 (예: Macintosh HD)에 Developer > Applications 디렉토리에 위치한 Xcode를 실행시키면 된다.
 
1. Xcode를 실행한다.

2. 처음 실행하면 위와 같은 화면이 뜨는데, 여기서 보지 말고 메뉴의 Window > Organizer 를 실행시킨다.

 

3. 개발용으로 사용할 아이팟터치(아이폰)을 연결시킨다. 
연결시키면 다음과 같이 인식을 하게 되는데, "Use for Development"를 클릭하면 "Organizer"에 개발용 기기로 등록된다.

4. 다음과 같이 등록되었으면, "Identifider"에 씌여있는 40자리 문자를 복사한다.

5. 다시 "Program Portal"로 돌아가서 좌측 메뉴의 "Devices"를 선택하고, 상단의 "Add Device"를 클릭하여 자신의 기기를 등록한다.

6. "Device Name"은 원하는대로 적고, "Device ID"는 방금 복사했던 "Identifier" 값을 붙여넣기 한다.
그리고 "+"를 눌러 추가하고 "Submit"버튼을 클릭하면 기기가 등록된다.

7. 좌측 메뉴의 "App IDs"를 클릭하고, 오른쪽의 "Add ID"를 클릭하여 ID를 등록한다.

8. "Apple ID Name"과 "App ID"를 등록한다. 개발자용이므로 아무거나 적어도 된다. 역시나 "+"와 "Submit"버튼을 클릭하여 추가한다.

9. 좌측 메뉴의 "Provisioning"으로 가서 "Add Profile"을 클릭하여 프로파일을 생성한다. (Development탭에서 진행한다.)

10. "Profile Name"을 자신이 원하는대로 적고 "Cetificates", "App ID", "Devices"를 자신이 등록했던 대로 선택하고, "Submit"버튼을 눌러 프로파일을 생성한다.

11. "Action"에 "Download"버튼을 클릭하여 프로파일 파일을 다운로드 받는다. "Download"버튼이 생기기 까지 시간이 좀 걸릴 수 있으므로 "Download"버튼이 없으면, 새로고침을 한다.

12. "Xcode"의 "Organizer"로 돌아와서, 방금 다운로드 받은 프로파일 파일을 "PROVISIONING PROFILES"에 끌어다 놓는다. 그럼 아래처럼 프로파일이 등록될 것이다.

이로써 기기연결을 위한 모든 준비를 마쳤다. 

신고
  1. Shallaa 2009.08.07 03:48 신고

    좋은 정보 감사합니다.

    • k2man 2009.08.19 22:35 신고

      모자란 내용은데 그렇게 생각해 주셔서 감사합니다. ^^

  2. samne 2009.10.15 14:28 신고

    덕분에 편하게 등록했습니다. 감사합니다.

  3. philosup 2010.01.25 23:29 신고

    한참 헤매이고 있었는데 잘 정리해 놓으셨네요^^.
    감사합니다.

이제 내 맥과 아이폰 개발자 홈페이지 간에 인증 과정을 거쳐야 합니다.

이 과정을 제대로 해야 기기 연결을 제대로 할 수 있습니다.

1. "Program Portal"에 들어 갑니다. 

"애플 아이폰 개발자 홈페이지"에서 상단 오른쪽에 있는 아래 링크를 이용하시면 됩니다.

 

아래와 같은 화면이 뜰겁니다. 여기서 왼쪽에 있는 메뉴를 주로 이용합니다.

 

2. 왼쪽의 "Certificates"에 들어가서 "Development"를 클릭해 보시면, 아직 인증서가 등록되지 않은 것을 볼 수 있습니다.

이제 인증서를 생성하도록 하겠습니다. (반드시 "Development"에서 진행하시기 바랍니다.)

 

3. 맥의 Finder로 가셔서 "이동 > 응용프로그램 > 유틸리티 "에 가셔서 "키체인 접근"을 실행합니다.

4. "키체인 접근"에서 "환경설정"으로 들어갑니다.


5. "검사/복구"탭에서 4개 항목 모두 체크되어 있는지 확인합니다. 안되어 있다면 체크합니다.

6. "인증서"탭에서 "끔, 끔, OCSP"으로 세팅되어 있는지 확인합니다. 안되어 있다면 세팅합니다.

7. "키체인 접근"에서 "인증 지원 > 인증 기관에서 인증서 요청..."으로 들어갑니다.

8. "애플 아이폰 개발자 홈페이지"에 등록한 "이메일 주소"와 "이름"을 적습니다. 
이름은 홈페이지에 나와있는 Welcome 다음에 나온 대로 적으면 됩니다. 아마 "이름 성" 형태로 나올 겁니다. 나온 대로 적으면 됩니다.

또, "요청"에서 "디스크에 저장됨"을 체크하시고, "자신이 키페어 정보 지정"도 체크하셔야 합니다.

9. 저장여부를 묻습니다. 데스크탑에 그냥 저장 하십시요.

10. 다음 아래와 같은 창이 뜰겁니다. "2048비트"와 "RSA"가 선택되었는지를 확인하고 "계속"을 누릅니다.

11. 바탕화면에 "Certificate..."하는 파일이 생성되었을 겁니다. "완료"를 누르세요.

12. 다시 "애플 아이폰 개발자 홈페이지"로 돌아와서 "Program Portal"로 들어갑니다. 좌측 메뉴에서 "Certificates"를 선택하면 다음과 같은 화면이 나올겁니다.

여기에서 "Request Certificae"버튼을 클릭합니다.

13. "파일 선택" 버튼을 클릭하여, 방금 전 키체인에서 생성한 파일을 선택하고, "Submit" 버튼을 클릭합니다.

14. 다시 "Certificate" 화면으로 돌아 오는데, 새로 고침을 하다 보면 Action에 "Approve" 버튼이 생성됩니다. "Approve"가 생기면 버튼을 클릭합니다.
다음, "click here to download now" 를 클릭하여 파일을 다운로드 받습니다.

15. 다운로드 받은 파일을 실행시키면 아래와 같이 묻습니다. "승인"을 누르면 됩니다.

16. 다시 홈페이지에서 새로고침을 해보면

이번엔 "Download" 버튼이 생겨 있습니다. 이 버튼을 클릭해서 파일을 다운로드 받습니다.

 

17. 다운로드 받은 파일을 실행시켜 승인합니다.

18. 다시 "키체인 접근"으로 들어가 보면 인증서가 생성된 것을 확인 하실 수 있습니다.

신고

실제 기기로 테스트하거나 앱스토어에 등록해 판매하지 않고 공부만 할 예정이라면, 개발환경구축 과정 필요 없이 시뮬레이터만으로도 가능하다. 이 때, 방법은 아래의 1, 2번 과정만 수행하면된다.

우선 아이맥과 아이팟터치를 최신 버전으로 업데이트 시켜줘야 합니다.

아이맥을 처음 실행시키고 인터넷에 연결되면 자동으로 업데이트가 시작됩니다. 또 아이팟터치도 아이튠즈와 싱크되면서 자동 업데이트 됩니다.

 1. 애플 개발자 홈페이지 (http://developer.apple.com) 에서 회원가입을 합니다. 

단, 이때 회원가입 정보와 차후 개발자 프로그램 구매 정보가 동일해야만 고생을 안합니다. 회원가입시 정확한 정보를 입력하시고, 다음 단계에서 개발자 프로그램 구매시에도 동일하게 정보를 입력해야 합니다.

 2. 애플 아이폰 개발자 홈페이지 (http://developer.apple.com/iphone) 에서 로그인 후 SDK를 다운로드 받아 설치합니다. 

애플 개발자 홈페이지는 크게 아이폰, 사파리, 맥OS로 나뉘어져 있습니다. 이 중 아이폰으로 이동하시면 됩니다.

단계 1에서 가입하신 정보로 로그인 하시면 최신 SDK를 다운로드 받을 수 있게 됩니다.

 3. 애플 아이폰 개발자 프로그램 홈페이지 (http://developer.apple.com/iphone/program)에서 Apply하시면 됩니다.

개인사용자인지 기업사용자인지를 물어보는데 자신에 맞게 하시면 될 것 같습니다. 혹시나 1인 기업을 생각하고 계신다고 하더라도 개인사업자 자격이므로 개인사용자로 해도 문제가 없지 않을까 개인적으로 생각합니다.

지역도 물어보는데 한국을 선택하시면 됩니다.

등록을 완료하면 자동으로 한국 애플 스토어로 이동하고 장바구니에 자동으로 Standard Program이 들어 있는 것을 보실 수 있습니다. 가격은 부가세 포함하여 11만원이 조금 안됩니다. 이 것을 구매해야만 앱스토어에 등록할 수가 있습니다.

 4. 하루정도가 지나면 회원가입시 작성한 이메일로 활성화 코드(iPhone Developer Activation Code)가 옵니다. 이메일 내의 코드 링크를 클릭하고 로그인을 하면 됩니다.

여기서 저는 인증에 문제가 생겼습니다. 그래서 다음 단계로 바로 진행이 안되고 신분을 확인하는 단계를 거쳐야 했습니다. 인증이 제대로 되었다면 "Program Portal"로 이동을 하거나 "애플 아이폰 개발자 홈페이지" 오른쪽에 "Program Portal"메뉴가 생성되었을 것입니다.

일단 받으신 인증코드 이메일은 절대 지우지 마시고 아래 방법으로 하시면 됩니다.

문제가 생기면 http://developer.apple.com/contact 로 가셔서 이메일을 보내시면 됩니다. 영어 실력이 개판인지라 아래처럼 딱 2줄 적어 보냈는데, 어이없게도 한글로 안내 이메일이 오더군요.

Im not activation,
What should I do authentication?

이메일 내용을 보니, 신분 확인이 안되니 신분증(여권, 주민등록증, 운전면허증 중) 사본을 보내는데, 그냥 보내서는 안되고 문서 공증을 받거나 경찰서에 가서 아무 경찰관에게나 신분 확인 받았다는 사인을 받고 보내라고 합니다.

어떤 분은 그냥 해줬다고도 하던데, 저는 조금 많이 잘못되었나 봅니다. ㅜ_ㅜ

신분증 복사해서 동네 지구대를 4번이나 갔는데 계속 순찰중이라 아무도 없더군요. 다섯번째야 사인을 받았는데, 도대체 뭐하는 것인지 궁금해 할까봐 애플로부터 받은 이메일까지 출력해서 갔습니다.

사본을 보낼때는 팩스로 보내는데 호주 전화번호더군요. 인터넷팩스를 이용했습니다.

그리고 보낼 때 "등록아이디 번호"도 신분증 사본에 적어 달라고 하는데요 이것은 "애플 아이폰 개발자 홈페이지"에 가서 로그인 후에 오른쪽 위의 "Edit Profile"을 클릭하셔서 들어가셔 보면 "Person ID"란에 10자리 숫자가 적혀 있을 겁니다.

이 숫자를 적으시면 됩니다.

애플 쪽에서 확인이 되면 다시 인증코드를 클릭해 보라는 이메일이 옵니다. 그러면 처음에 받았던 인증코드 이메일을 다시 열어서 클릭하시면 "Program Portal"로 이동합니다.

신고
  1. 2009.11.11 13:46

    비밀댓글입니다

    • k2man 2009.11.17 11:42 신고

      국내에서 처리하지 않고, 아시아/태평양 부분은 호주쪽에서 처리하는 것 같더라구요.
      영어로 어렵게 질문을 보냈더니.. 한국담당자가 한글로 답변을 해와서 뻘쭘했다는... ^^;

  2. 2009.11.17 11:29

    비밀댓글입니다

2009년 2월 23일

아이폰용 어플리케이션을 개발하기로 마음 먹고 준비작업에 들어갔습니다.

우선은 맥과 아이팟터치가 필요한지라 고민 끝에 구입하였습니다.
고민 고민 하다가 조금 비싸더라도 모니터 등등을 또 구입하느니 맥미니보다는 아이맥이 낫겠다 싶어서 아이맥을 구입하기로 마음 먹었습니다.
아이팟터치는 제가 음악을 별로 즐기는 편이 아니라 개발용으로만 사용할 계획으로 8GB 모델을 선택하였습니다.
아이맥은 1,285,200원에 아이팟터치 8GB는 278,200원에 구입하였고, 액정보호필름을 추가로 구입하였습니다.
여러가지 글들을 읽어 본 결과 원활하게 진행하려면 맥을 사는 것 외에는 방법이 없겠더군요. 조금 무리를 하긴 했지만, 나름 만족하고 있습니다.

 

신고

+ Recent posts