ios - 在 obj-c 中使用参数初始化

标签 ios objective-c cocoa-touch

我处于必须创建带有参数的 init 的情况。

- (id) initWithSomeParameter:(id)parameter;

不应调用正常的 init。所以,我有两个选择来完成这个。当有人调用 init 或返回 nil 时,我实际上可以抛出异常。

应该做什么,为什么?

最佳答案

您应该有一个指定的初始化程序,所有其他init 方法都会调用它。

在您的示例中,指定的初始化程序可能是

- (id)initWithSomeParameter:(id)something;

如果另一个程序员调用 -(id)init 而不是指定的初始化程序,您可能会这样做:

- (id)init
{
    return [self initWithSomeParameter:nil];
}

如果您绝对必须someParameter提供一个值,您可以选择抛出异常,但这种做法因获取值的重要性而异实例对象的初始化。

这也是 Apple 关于使用指定初始化器的输入:

http://developer.apple.com/library/ios/#documentation/general/conceptual/DevPedia-CocoaCore/MultipleInitializers.html

关于ios - 在 obj-c 中使用参数初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15079855/

相关文章:

objective-c - 使用 UIViewController 调用多个 ViewController

objective-c - isValidJSONObject 未按预期工作

objective-c - 在桥接 Objective C 文件中使用 Swift 类

ios - 我可以在图像 Assets 中定位特定的 iPhone 型号吗?

ios - PHPickerViewController 通过 PHAsset 加载视频

iphone - 不在 SQLite 中保存数据

ios - 类型 'PageViewController' 不符合协议(protocol) 'UIPageViewControllerDataSource'

ios - iPhone 连接到 localhost Rails sarver

ios - 隐藏导航栏不起作用

ios - 如何成为存储在 NSArray 中的对象的属性的观察者?