2011-05-21 16 views
16

tengo una clase Message con dos atributos, name y message, y otra clase MessageController con dos campos de texto, nameField y messageField. Quiero hacer una instancia de Message en MessageController, pasando estos dos atributos como argumentos.Paso de parámetros a una clase personalizada en la inicialización

En este momento, estoy haciendo esto:

Message *messageIns = [[Message alloc] init]; 
messageIns.name = nameField; 
messageIns.message = MessageField; 

¿Cómo puede pasar que los valores en la creación de una instancia? He intentado redefinir init en Message.m, pero no sé cómo hacerlo.

-(id)init{ 
    if((self=[super init])){ 

    } 
    return self; 
} 

Por favor ayuda.

Respuesta

37

Tienes que crear un inicializador personalizado.

-(id)initWithName:(NSString *)name_ message:(NSString *)message_ 
{ 
    self = [super init]; 
    if (self) { 
     self.name = name_; 
     self.message = message_; 
    } 
    return self; 
} 

, por supuesto, esto supone que los parámetros son de tipo NSString y que ha establecido sus propiedades correctamente;)

+1

Muchas gracias. ¿Y cómo debería llamar al método? Mensaje * messageIns = [[Message alloc] initWithName: nombre, mensaje]; lo siento pero soy un nob en este dominio. – user567

+9

llámalo así: 'Mensaje * messageIns = [[Message alloc] initWithName: algúnNombreString mensaje: someMessageString]' –

+0

gracias, funciona perfectamente :) – user567

Cuestiones relacionadas