본문 바로가기

아이폰개발2/Objective-C

메소드에 인자값 전달하는 방법



#import <Foundation/Foundation.h>


@interface TestClass : NSObject

{

int a,b,c;

}

- (void) method1;                               // 인자값이 없을 경우

- (void) method2:(int)_a;                       // 인자값이 1개인경우;

- (void) method3:(int)_a bb:(int)_b; //2번째 인자값부터는 구분할수 있는 이름을 넣어줘야 한다. bb: 

- (void) method4:(int)_a bb:(int)_b cc:(int)_c; // 인자값이 3개인경우

- (int)  method5:(int)_a bb:(int)_b cc:(int)_c; // 리턴문이 있는 경우



@end


@implementation TestClass


- (void) method1{

printf("메소드 1 입니다.\n");

}


- (void) method2:(int)_a{

printf("메소드 2 입니다. : _a = %d\n", _a);

}


- (void) method3:(int)_a bb:(int)_b {

printf("메소드 3 입니다 : _a = %d , _b = %d\n", _a, _b);

}


- (void) method4:(int)_a bb:(int)_b cc:(int)_c {

printf("메소드 4번입니다. : _a = %d , _b = %d, _c = %d\n", _a,_b,_c);

}


- (int) method5: (int)_a bb:(int)_b cc:(int)_c {

return (_a + _b + _c);

}


@end






int main (int argc, const char * argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];


    // insert code here...

   

TestClass *test = [TestClass new];

[test method1];           // 해당객체에게 메세지를 전달

[test method2:10];        // 해당객체에게 메세지뿐만 아니라 인자도 전달

[test method3:10 bb:20];  // 인자값 2개전달

[test method4:10 bb:20 cc:30];// 인자값 3개전달해줌

int result = [test method5:10 bb:20 cc:30];    // 리턴값 전달해줌

printf("result = %d\n", result);

//[test method4:10 cc:30 bb:20];// 순서가 바뀌어도 에러가 발생

//[test method4:10 bb:20];      // 인자가 부족해도 애러가 발생

    [pool drain];

    return 0;

}