2009-05-10 14 views
8

que tienen la siguiente clase ViewController¿Por qué "no se puede usar un objeto como parámetro de un método"?

#import <UIKit/UIKit.h> 

@interface SampleViewController : UIViewController { 
    IBOutlet UITextField *field1; 
} 

@property (nonatomic, retain) UITextField *field1; 

- (IBAction) method1:(id)sender; 
@end 

Cuando cambio el metodo1: (id) remitente a metodo1: (UITextField) remitente, me sale el error "No se puede usar un objeto como un parámetro a un método".

I buscado y encontrado this post que dice "que [utilizando un objeto como un parámetro de método] no es una buena idea en Objective-C, porque Objective-C no permite reserva estáticamente objeto".

¿Alguien puede indicar dónde puedo encontrar una explicación más detallada para esto?

Gracias.

Respuesta

20

No está pasando un puntero de UITextField.

method1:(UITextField)sender 

debería ser

method1:(UITextField *)sender 

Objective-C no le gusta cuando se pasa no punteros de tipos de objetos.

+0

Curiosamente, puede pasarlo si se trata de una estructura en lugar de un objeto – Casebash

Cuestiones relacionadas