기본 인스턴스 생성법

기본 인스턴스 생성법
NSString *nameString = [[NSString alloc] initWithString:@"Hello World"];
NSString : 객체 형
nameString : 인스턴스명
NSString alloc : 객체명, 메모리
initWithString : 객체메소드
@"~~~" : 객체메소드의 파라메터(nameString 의 값)

메소드 호출
instance = [ObjectName methodName parameter:value parameter:value]
메소드 실행후 돌려 받는 값을 따로 지정 하고 싶을때(객체생성시 동일)
hashValue = [[sorceStr subStringFrom:2 to:5] hash]
sorceStr의 2~5까지 문자를 구해서 hash값으로 리턴
위의 기본인스턴스 생성법을 이것과 연결 해보면
NSString을 alloc(메모리할당 -- reference count+1) 하고 메모리에 초기값(Hello Wolrd)을 넣은뒤 객체생성함

코코아 클래스
코코아 클래스는 헤더(.h)와 임플리먼트(.m)으로 구성
헤더 : @interface ~ @end 로 이루어며 아래의 형식을 따름
// 클래스명 : 슈퍼클래스 <프로토콜> : NSSObject수퍼 클래스의 서브클래스Person을 복사할 수 있는 NSCopying 프로토콜 구현
@interface Person : NSObject <NSCopying> 
{
//인스턴스 변수
NSString *name;
}
//메소드 선언 구현 들어갈 자리
- (void)singASong;
- (NSString *)name;
- (void)setName:(NSString *)newNmae;
@end
임플리먼트 : @implement ~ @end로 구성
//헤더에서 구현된 서브클래스 선언
@implement Person
//메소드 실동작 코드
- (void)singASong
{
NSLog (@"Method Name : %s", __FUNCTION__);
}
...
@end
위와 같이 클래스가 만들어 졌으면
NSObject me = [[NSObjec alloc] Person]
[me singASong]; // "Method Name : singASong"

헤더에 다른 클레서를 임포트 할때는
#import "ClassName.h"
하지만 헤더에 임포트 할경우 교차임포트 할 수 있으므로 헤더에는 가상 클래스선언 임플리먼트 파일에 실제 import 할것을 권장함
#Person.h
@class Pet;
@interface Person:NSObject <NSCopying>
...
@end
#Person.m
#import "Pet.h"
@implement Person
...
@end

'Mobile > iOS' 카테고리의 다른 글

맥 OS X의 root 계정 암호 설정/변경하기  (0) 2010.05.10
메모리 관리  (0) 2010.05.09