본문 바로가기

교육/Objective-C

[Objective-C] init

1. init

객체를 초기화하는 함수

init~으로 시작

성공하면 자신의 주소 리턴, 실패시 nil 리턴 

초기화 할때 변수를 받아서 할 수도 있다.

nil포인터에 함수 호출해도 죽지않음 ex) [nil init]

부모의 초기화 함수를 부르는경우 부모거(suepr) 먼저 내거(self) 나중



2. 소멸자

dealloc

부모의 dealloc을 부르는 경우 내거(self) 먼저 부모거(super) 나중


3. 샘플 코드 

interface Car :NSObject

{

    int speed;

}

-(id)init;

-(id)initWithSpeed:(int)spd;

-(void)printSpeed;

-(void)dealloc;

@end


@implementation Car

-(id)init

{

    self = [super init];

    if (self)

    {

        speed = 3;

    }

    return self;

}

-(id)initWithSpeed:(int)spd

{

    self = [super init];

    if(self)

    {

        speed = spd;

    }

    return self;

}

-(void)printSpeed

{

    NSLog(@"speed = %d",speed);

}

-(void)dealloc

{

    NSLog(@"dealloc");

    

    [super dealloc];

}

@end


int main()

{

    Car* p = [[Car alloc] initWithSpeed:5];

    [p printSpeed];

    Car* p2 = 0;

    [p2 init];

    [p release];

    [p2 release];

    return 0;

}

'교육 > Objective-C' 카테고리의 다른 글

[Objective-C] property  (0) 2016.07.26
[Objective-C] 메모리 관리  (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