OGeek|极客世界-中国程序员成长平台

标题: ios - super 初始化返回零 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:07
标题: ios - super 初始化返回零

我有这种情况,我只是调用类的 init 我使这个类是 NSObject 的子类。

- (instancetype)initArray
{
    self = [super init];

    if (self) {
      //Do Some Logic
    }
return self;
}

这是我来自应用代表的电话

    CategoryLoader *categoryLoader = [[CategoryLoader alloc]initArray];

让我抓狂的是:

请注意,两个 Xcode 都是 6.3

我尝试过的解决方案:

这是发生的事情的屏幕截图:

Screenshot

有什么建议为什么它会从 NSObject 返回 nil,接下来我该怎么做?

谢谢



Best Answer-推荐答案


NSObjectinit 实现不应该返回 nil。这记录在 NSObject Class Reference : 虽然有点困惑,但关键部分是

The init method defined in the NSObject class does no initialization; it simply returns self.

如果您观察到它重新调整 nil,则可能没有按照您的预期设置某些内容(可能该类不是 NSObject 的直接子类),或者您是以某种方式错误地解释了结果,或者在另一个级别上有问题。您在不同机器上观察到不同结果的事实表明它可能处于另一个级别,例如 Xcode、操作系统或硬件。我无能为力。尝试重新启动。

另外,你的方法应该命名为 init 而不是 initArray。这不是一个要求,而是一个非常强大的约定。您可以阅读 Object Initialization in Apple’s Concepts in Objective-C Programming

关于ios - super 初始化返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770694/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4