objective-c - 将 super init 赋值给 self 有什么作用?

标签 objective-c

鉴于这段代码:

-(id) init
{
    self = [super init];
    if (self != nil)
    {
       ...
    }
    return self;
}

我知道我们正在检查 super 初始化没有失败,但否则它对我来说毫无意义,我希望得到一个菜鸟的解释。

为什么我要把 super init 的结果赋值给 self.如果我从我的类中删除这个方法, super 初始化方法无论如何都会被调用,并且不会有任何分配。

最佳答案

原则上(令人惊讶的是,甚至在实践中)[super init] 可以返回不同的对象!请参阅http://mikeash.com/pyblog/the-how-and-why-of-cocoa-initializers.htmlhttp://cocoawithlove.com/2009/04/what-does-it-mean-when-you-assign-super.html了解更多信息。

关于objective-c - 将 super init 赋值给 self 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5594139/

相关文章:

iOS-indexPath 总是返回 nil

ios - SecCertificateCreateWithData 总是返回 null

iOS 在位于 subview 中的 uitextfield 外部点击时隐藏键盘?

iphone - 如何让iPhone在关闭后再次显示位置授权弹窗?

ios - 为什么我的属性(property)因调用地点而异?

c# - 使用自定义单元配件的 Monotouch - 如何判断选择了哪一行

ios - UIView 未在 iPhone App 中更新

objective-c - 现代 Objective C 运行时中 ivar 合成的底层机制是什么

ios - 如何从日期时间格式检索 NSDate?

objective-c - 如何确定 Mac 上 Objective-C 中事件接口(interface)的网络掩码?