코딩 기본 규칙 

1. 클래스는 대문자로 시작한다.

2. 인스턴스 변수는  소문자로 시작한다.

  * private 일 경우 _xxx, __xxx 허용

 

 

* 최상위 클래스

NSObject (자바의 Object같은 것인듯)

클래스를 만들때 NSObject를 상속받는다.

 

* 상속, 클래스 변수, 연산자 오버로딩

다중 상속을 지원하지 않는다.

클래스 변수를 지원하지 않는다. (자바와는 다른듯?)

연산자 오버로딩을 지원하지 않는다.

아규먼트 오버로딩을 지원하지 않는다.

 

* id, self, super, nil, @""

id : 객체를 가리키는 포인터 void*와 같다.

self : 자신을 가리키는 포인터. (자바의 this)

super : 자바의 super

nil : 객체가 없음.

NULL : C와 같음

c style 의 스트링 "하하"

유니코드 스트링 @"하하"

 

* 메소드의 기본 리턴타입은 id

 - (id)sayHello

 - sayHello

두가지는 같은 의미. 즉 명시하지 않으면 기본으로 객체 타입을 리턴한다.

 

* 객체 생성

MyObject *className = [[MyObject alloc] init];

alloc은 클래스 메소드. init은 인스턴스 메소드

alloc - 메모리 준비, init - 인스턴스 변수 초기화

 

* 메세지 보내기(자바의 "함수 호출" 이란 뜻인듯)

Object C 는 [ 구문 ]; 형식을 취한다.

[myObject draw];

 

* 메세지 인자

메세지 인자는 : 로 구분한다.

[myObject drawWithX:pointX withY:point Y];

[myObject drawWithX:pointX:point Y];

 

두가지는 같은 뜻이지만 위에것이 더 명확하다.

 

 

* import

C의 include도 허용하지만 자바처럼 import를 사용하는 듯하다.

 

* 클래스 선언

클래스이름.h 로 파일 생성

Foundation이나 UIKit을 import

-> #import <Foundation/Foundation.h>

-> #import <UIKit/UIKit.h>

 

@interface 클래스이름 : 상위클래스 로 선언

+(Return type) ClassMethod; -> Class Method Declare

-(Return type) InstanceMethod; -> Instance Method

@end 로 닫는다.

 

클래스 선언 예제

#import <Foundation/Foundation.h>

 

@interface MyName:NSObject

{

NSString *name;

}

+(MyName*) newInstance; //or +(Id)newInstance;

-(Id)initWithName:(NSString *)name;

@end

 

* 클래스 구현

클래스이름.m 으로 파일 생성

#import "클래스이름.h" 로 미리 선언한 헤더 import

@implementation MyName 으로 구현시작

+(Return type)ClassMethod {...}; 구현

-(Return type)InstanceMethod {...}; 구현

 

클래스 구현 예제

#import "MyName.h"

 

@implementation MyName

+(MyName*)newInstance

{

// 내용 구현

return [[MyName alloc] initWithName:null] autorelease];

}

-(Id)initWithName:(NSString*)name

{

// 내용 구현

if(self = [super init])

{

 

}

return self;

}

@end






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


'개발지식창고 > iOS' 카테고리의 다른 글

IBOutlet과 IB(Interface Builder)  (0) 2013.12.19
Apple iOS Deverloper Library Site  (0) 2013.12.19
String과 Int 변환  (0) 2013.12.19
프로토콜  (0) 2013.09.03
Entry point ~ View 전까지의 Process  (0) 2013.08.20
Posted by 모과이IT
,