web-dev-qa-db-ja.com

初期化時にカスタムクラスにパラメーターを渡す

Messagenameの2つの属性を持つクラスmessageと、2つのテキストフィールドMessageControllernameFieldを持つ別のクラスmessageFieldがあります。これら2つの属性を引数として渡して、MessageMessageControllerのインスタンスを作成します。

今、私はこれをやっています:

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

インスタンスの作成時に値を渡すにはどうすればよいですか? Message.mでinitを再定義しようとしましたが、その方法がわかりません。

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

    }
    return self;
}

助けてください。

19
user567

カスタム初期化子を作成する必要があります。

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

もちろん、これはパラメータがNSStringタイプであり、プロパティが正しく設定されていることを前提としています;)

44
Giuliano Galea