• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - super 初始化返回零

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:07:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

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

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

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

让我抓狂的是:

  • 虽然它返回 nil,但它进入了 if 条件
  • 它不会在其他计算机上使用其他 Xcode 返回 nil

请注意,两个 Xcode 都是 6.3

我尝试过的解决方案:

  • 清理 Xcode 的缓存
  • 删除了类(class)并创建了一个新类(class)
  • 重新安装 Xcode

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

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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap