본문 바로가기

교육/Objective-C

[Obective-C] Class

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