在初始化时将参数传递给自定义类

use*_*567 19 cocoa-touch objective-c init ios

我有一个类Message有两个属性,namemessage和其他类MessageController有两个文本字段,nameFieldmessageField.我想创建一个Messagein 的实例MessageController,将这两个属性作为参数传递.

现在,我这样做:

 Message *messageIns = [[Message alloc] init];
 messageIns.name = nameField;
 messageIns.message = MessageField; 
Run Code Online (Sandbox Code Playgroud)

如何在创建实例时传递值?我试图init在Message.m中重新定义,但我不知道怎么做.

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

    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Giu*_*lea 45

您必须创建自定义初始化程序.

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

当然这假设您的参数是NSString类型,并且您正确设置了属性;)

  • 这样调用:`Message*messageIns = [[Message alloc] initWithName:someNameString message:someMessageString]` (11认同)
  • 还添加`-(id)initWithName:(NSString *)name_ message:(NSString *)message_; 在Message.h中 (2认同)