0

我有一个超类,需要设置一些属性才能正常工作。

我正在寻找一种方法来强制/通知/警告它必须设置这些属性的任何子类,所以任何子类这个超级的人都不会忘记这样做。

最好的做法是什么?(我正在编码 Obj-c

谢谢谢

4

1 回答 1

0

创建形式的指定初始化程序:

- (id)initWithProperty1:(Property1Type *)property1 property2:(Property2Type *)
{
    self = [super init];
    if (self) {
        _property1 = property1;
        _property2 = property2;
    {
    return self;
}

然后你可以覆盖标准初始化程序并强制它中止(有点苛刻),或者让它记录一条消息:

- (id)init
{
    NSLog(@"You must use the designated initializer.");
    return nil;
}

在您的类的文档中,请务必说明指定的初始化程序是什么。

于 2013-10-04T14:44:55.217 回答