我处于必须创建带有参数的 init
的情况。
- (id) initWithSomeParameter:(id)parameter;
不应调用正常的 init
。所以,我有两个选择来完成这个。当有人调用 init
或返回 nil
时,我实际上可以抛出异常。
应该做什么,为什么?
最佳答案
您应该有一个指定的初始化程序,所有其他init
方法都会调用它。
在您的示例中,指定的初始化程序可能是
- (id)initWithSomeParameter:(id)something;
如果另一个程序员调用 -(id)init
而不是指定的初始化程序,您可能会这样做:
- (id)init
{
return [self initWithSomeParameter:nil];
}
如果您绝对必须为someParameter
提供一个值,您可以选择抛出异常,但这种做法因获取值的重要性而异实例对象的初始化。
这也是 Apple 关于使用指定初始化器的输入:
关于ios - 在 obj-c 中使用参数初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15079855/