2010-07-25 4 views
6

나는 objective-c에서 첫 번째 클래스를 작성하려고하는데 클래스의 메소드에서 NSString 객체를 매개 변수로 전달하려고합니다. 그러나 "메소드에 매개 변수로 객체를 사용할 수 없다는 오류가 발생합니다. ". 그래서 내 질문은 방법에 매개 변수로 문자열을 전달합니까? 여기 내 코드는 일하려고 노력하고 있습니다 :objective-c에서 메서드 매개 변수로 문자열을 전달하는 방법은 무엇입니까?

#import <Foundation/Foundation.h> 

@interface Car 
{ 
    NSString *color; 
    NSString *make; 
    int year; 
}  

- (void) print; 
- (void) setColor: (NSString) c; 
- (void) setMake: (NSString) m; 
- (void) setYear: (int) y; 


@end 

@implementation Car 

- (void) print 
{ 
    NSLog(@"The $d Ford %@ is [email protected]", year, make, color); 
} 

- (void) setColor: (NSString) c 
{ 
    color=c; 
} 

- (void) setMake: (NSString) m 
{ 
    make=m; 
} 

- (void) setYear: (int) y 
{ 
    year=y; 
} 


@end 



int main (int argc, const char * argv[]) { 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; 

    Car *car= [Car new]; 

    [car setColor:@"blue"]; 
    [car setMake:@"Bronco"]; 
    [car setYear:1992] 

    [car print]; 
    [car release]; 

    [pool drain]; 
    return 0; 
} 

답변

15

문자열 개체에 대한 포인터를 입력해야합니다. 따라서 매개 변수 유형에 *를 추가해야합니다.

f.e.

- (void) print; 
- (void) setColor:(NSString *) c; 
- (void) setMake:(NSString *) m; 
- (void) setYear:(int) y; 

완전히 일 구현

+0

에서 같은, 당신의 도움이 내가 대답에 대한 웹 검색 봤는데 당신이 내 질문에 대답 할 수 있었던 유일한 사람이야 해 주셔서 감사합니다 . 고마워. – Joe

관련 문제