1. 선언부
@interface 클래스 명 : 상속 받을 클래스 명
{
// 내부 변수 선언
}
// 함수 혹은 property 선언
@end // 끝
2. 구현부
@implementation 클래스 명
// 함수 구현
@end // 끝
3. 샘플 코드
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
// @private // default가 protected
int color;
int speed;
}
+(void)foo;
-(void)goo;
@end
@implementation Car
+(void)foo
{
NSLog(@"foo");
}
-(void)goo
{
NSLog(@"goo");
}
@end
int main()
{
[Car foo];
Car * a = [Car alloc];
[a goo];
[a release]; // 메모리 관리 arc
a->color; // 멤버 접근(public의 경우)
a = nil;
return 0;
}
4. class 샘플 코드
@interface Car : NSObject
-(void) go:(int)a speed:(int)s;
@end
@implementation Car
-(void)go:(int)a speed:(int)s
{
NSLog(@"Car go : %d %d",a,s);
}
@end
id CreateObject(NSString* name)
{
Class c = NSClassFromString(name);
return [[c alloc] init];
}
void foo(id obj)
{
//obj가 Car인지확인
if ([obj isKindOfClass:[Car class]])
{
NSLog(@"yes");
}
else
{
NSLog(@"no");
}
}
int main()
{
Car* c1 = [[Car alloc] init];
// 클래스 얻는 법
Class c = [c1 class];
Class c2 = [Car class];
Class c3 = NSClassFromString(@"Car");
// end
[c1 go:3 speed:4];
Car* p2 = [[c3 alloc] init];
[p2 go:4 speed:5];
id p3 = CreateObject(@"Car"); //문자열을 인자로 받아서 객체를 생성하는 함수
foo(p3);
[p3 go:20 speed:30];
return 0;
}
'교육 > Objective-C' 카테고리의 다른 글
[Objective-C] 메모리 관리 (0) | 2016.07.26 |
---|---|
[Objective-C] init (0) | 2016.07.26 |
[Objective-C] target-Action (0) | 2016.07.13 |
[Objective-C] selector (0) | 2016.07.13 |
[Objectiv-C] method (0) | 2016.07.13 |