Passing parameters to a custom class on initialization

北战南征 提交于 2019-12-09 08:23:36

问题


I have a class Message with two attributes, name and message, and another class MessageController with two text fields, nameField and messageField. I want to make an instance of Message in MessageController, passing these two attributes as arguments.

Right now, I am doing this:

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

How can I pass the values at the creation of an instance? I tried to redefine init in Message.m, but I don't know how do that.

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

    }
    return self;
}

Please help.


回答1:


You have to create a custom initializer.

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

of course this assumes your parameters are of NSString type and that you have your properties set correctly ;)



来源:https://stackoverflow.com/questions/6084802/passing-parameters-to-a-custom-class-on-initialization

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!