在 - (id)init中设置args

时间:2011-09-11 01:31:32

标签: objective-c cocoa-touch

是否可以在init方法上传递args?当我推送一个新视图时,我正在使用UITableViewController类和UINavigatorController:

[self.navigationController pushViewController:[[Class alloc] init] animated:YES];

我还会将一个字符串传递给该控制器,是否可能?

2 个答案:

答案 0 :(得分:2)

这不仅是可能的,而且是正常的,也很常见。实际上,在类中有多个初始化器是很常见的,其中每个初始化器具有不同的args组合,允许您以不同的方式初始化类。

当您发现自己为一个类创建了多个初始化程序时,您应该确保遵循最佳实践,使一个初始化程序成为指定的初始化程序"。以下是a link文章,其中演示了指定初始值设定项的原理。

答案 1 :(得分:1)

当然,只需为视图控制器子类定义自己的初始值设定项:

- (id)initWithStyle:(UITableViewStyle)style andSomeParameter:(NSString *)param
{
    if (self = [super initWithStyle:style]) {
        myInstanceVariable = [param retain];
    }
    return self;
}

(这是针对UITableViewController的子类。)