2010-07-25 14 views
6

Estoy tratando de escribir mi primera clase en Object-C y quiero pasar un objeto NSString como parámetro en un método de la clase, sin embargo me sale un error que dice que "no puedo usar un objeto como parámetro para un método ". Entonces mi pregunta es ¿cómo pasas una cadena como parámetro a un método? aquí es mi código de THT que estoy tratando de llegar al trabajo:¿Cómo paso una cadena como parámetro de método en Object-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; 
} 

Respuesta

15

Es necesario entregar un puntero a su objeto de cadena. Por lo tanto, debe agregar un * al tipo del parámetro:

f.e.

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

y lo mismo en la implementación

+0

que trabajó totalmente, muchas gracias por su ayuda he estado buscando en la web para una respuesta y usted es el único que ha sido capaz de responder . así que muchas gracias – Joe

Cuestiones relacionadas