2010-07-25 14 views
6

Ich versuche, meine erste Klasse in objective-c zu schreiben, und ich möchte ein NSString-Objekt als Parameter in einer Methode der Klasse übergeben, jedoch bekomme ich einen Fehler, der besagt, dass ein Objekt nicht als Parameter für eine Methode verwendet werden kann ". Meine Frage ist also, wie übergeben Sie eine Zeichenfolge als Parameter an eine Methode? Hier ist mein Code, den ich versuche, zur Arbeit zu kommen:Wie übergebe ich eine Zeichenfolge als Methodenparameter in 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; 
} 

Antwort

15

Sie müssen einen Zeiger auf Ihr String-Objekt übergeben. Sie müssen also dem Typ des Parameters ein * hinzufügen:

f.e.

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

und das gleiche bei der Umsetzung

+0

, die völlig gearbeitet, Vielen Dank für Ihre Hilfe Ich habe eine Antwort, die Web-Suche und du bist der einzige, der mir antworten konnte . Also vielen Dank – Joe

Verwandte Themen