인스턴스 메소드는 인터페이스나 구현부에서 '-' 문자를 앞에 기재합니다.
클래스 메소드의 문자는 '+'로 표기 합니다.

주의점)
클래스 메소드 안에서 인스턴스 변수를 참조 하는 것은 불가능합니다.
인스턴스 메소드를 호출하는 것도 불가능합니다.
어떤 클래스 메소드 안에서 달느 클래스 메소드를 호출하기 위해서는 self 메시지를 보내면 됩니다.
슈퍼 클래스의 클래스 메소드를 호출할 때는 super를 사용합니다.
프로젝트명  remoteControl
생성파일목록
*remoteControl(폴더)
 -remoteControlAppDelegate.h
 -remoteControlAppDelegate.m
 -MainWindow.xib
 -remoteControlViewController.h
 -remoteControlViewController.m
 -remoteControlViewController.xib

*Supporting Files(폴더)
 -remoteControl-Info.plst
 -InfoPlist.strings
 -remoteControl-Prefix.pch
 -main.m  //클래스를 실행하기 위한 메인 함수
-Volume.h   //불륨조절 인터페이스 파일
-Volume.m  //불륨조절 구현 파일

*Frameworks(폴더)
 -UIKit.framework
 -Foundation.framework
 -CoreGraphics.framework
 
*Products(폴더)
 -remoteControl.app


Objective-C [2번째]

SMART_Phone/IPhone 2011. 6. 17. 17:26 Posted by Request

2.1) 인스턴스화

자바
Animal beaver = new Animal();

Objective-C
Animal beaver = [Animal alloc];


2.2) 메시지
alloc 호출 주변에 대괄호를 사용한 것은 Objective-C의 재미 있는 기능인 메시지 라는 것이다.

메시지는 오브젝트의 함수를 호출하는 기본적인 방법이다.

개념은 C++ 나 자바의 함수 호출과 같다.

(메세지 호출 방법)

자바
boolean listening = beaver.isListening();

Objective-C
BOOL listening = [beaver isListening];





Objective -C 에 대한 간단한 정리.

SMART_Phone/IPhone 2011. 6. 17. 11:53 Posted by Request
Objective-C = C + 스몰토크 언어
 
특징)
C 스타일 구조, 함수 호출, 메모리 할당, 포인터 모두 가능하다.
스레드 동기화, 트라이- 캐치 블록, 가비지 컬렉션 기능도 추가되어 있다.


 
1.1)클래스 구조
클래스 = 멤버 변수(데이터) + 메소드(함수를 포함한 오브젝트)

클래스는 @interface 키워드를 사용 하여 정의한다.
 .h파일 : 정의
.m파일 : 구현



1.1.1) Objective-C 클래스 구조 예)
 @interface Animal
{
// 멤버 변수는 여기에 둔다.
@private
int foo;
}
//클래스 메소드는 중괄호 바깥인 여기에 둔다.

-(int) bar : (double) input1;
@end

함수는 보통 - 로 시작한다.
클래스 메소드 사용 + 로 한다.



1.1.2)동일한 자바 구조
 class Animal
{
   private int foo;

   public int bar(double intput1) {...}
}



1.1.3 Objective-C 확장과 상속 구조
 @interface Animal : NSObject
{
}
//Objective-C 상속
@end



class Animal extends NSObject
{
         //Java 상속
}
-Objective-C도 자바 처럼 여러클래스를 상속 할수 없다는 점 주의 할 것.


1.1.4 Objective-C 구현

@protocol로 정의하며 절대적으로 virtual이어야 한다는 점만 제외하고 C++ 추상 베이스 클래스와 비슷하다.
어떠한 멤버 변수나 메소드 구현을 가져서는 안된다.

자바 인터페이스 클래스는 Objective-C에서 프로토콜 클래스라 부른다.
@protocol을 사용한다.

1.1.5) Objective-C 인터페이스 예
 @protocol GameEventListener 구현하기
       //프로토콜은 멤버 변수를 포함하지 않고 중괄호도 사용하지 않는다.
       // 메소드 정의는 여기에 하지만 아직 구현은 하지 않는다.
       -(BOOL) isListening;
       -(void) handleEvent : (int) event;
@end

@interface Animal : NSOnject <GameEventListener>
{
    //멤버 변수는 여기에 둔다.
@private
      int foo;
      BOOL active;
}

          //메소드와 오버라이드 메소드는 여기에 둔다.
          -(int) bar : (double) input1;
          -(BOOL) isListening;
          -(void) handleEvent : (int) event;
@end

1.1.6) Objective-C 구현
 @implementation Animal
@synthesize foo;

-(void) bar : (double) input1
{
//input1으로 할일을 한다.
}

-(BOOL)isListening
{
return self.active;
}

-(void) handleEvent : (int) event
{
//event에 따라 할 일을 한다.
}
@end

아이폰 게임 개발

SMART_Phone/IPhone 2011. 6. 15. 19:56 Posted by Request

1.애플개발자 등록
http://developer.apple.com/iPhone/program

2.애플에서 이메일로 SDK를 다운로드 링크 발송 (확인)
또는 애플 웹사이트 SDK 다운로드 가능
-XCODE 포함 되어 있으므로 따로 다운로드 할 필요 없음.

3.Xcode
Xcode 프로젝트는 아이폰 애플리케이션을 만드는 데에 필요한 코드, 리소스, ㅣㄴ증서, 환경설정 모두를 포함하고 있다.


'Hello World' 애플리케이션을 만들어 보자.

1.Xcode 연다.
2.File -> New Project
3.다이얼로그(iPhone OS) 선택 , View - Based Application 선택 , Choose 클릭.


[만들어진 파일 설명]

HelloworldAppDelegate.m, HelloWorldAppDelegate.h
 이 파일들에 담긴 클래스는 애플리케이션의 시작점이 되는 메인  코드이다.
app delegate
메인 창과 메인 뷰 컨트롤러를 제어 하고 ,  화면을 구성하는 역할을 한다.


HelloworldViewController.m, HelloworldViewController.h
메인 View를 지니고 있으며, 'Hello World' 입력 하는 곳이다.


Mainwindow.xib
이 인터페이스 빌더 파일은 프로젝트를 컴파일하면 애플리케이션하는 nib 파일이다.
Load할때, app delegate를 만들고, 메인 창과 뷰 컨트롤러를 불러 온다.


HelloworldViewController.xib
이 파일은 HelloWorldViewController 의 뷰에 쓰는 디자인을 정한다.