【问题标题】:iOS xib file IBOutlet not recognized - (class not key-value coding compliant)iOS xib 文件 IBOutlet 无法识别 - (类不符合键值编码)
【发布时间】:2016-01-30 11:35:46
【问题描述】:

我正在运行 XCode 7.1 并在设备(iOS 9)上运行 - (不是模拟器)。我正在按名称加载一个 nib 文件:

MyDetailsViewController *myDetailsVC = [MyDetailsViewController initWithNibNamed:@"MyDetails" withNotificationCenter:notificationCenter];

这只是我设置的一个类方法,它通过 mainBundle 加载 xib。 xib 文件只是一个UIView,里面有一个tableview,一切似乎都正确连接了。但是,当从包中加载 nib(viewWillAppearviewDidLoad 等尚未执行)时,我收到错误消息:

NSUnknownKeyException,原因:'[MyDetailsViewController setValue:forUndefinedKey:]:这个类不是 键值编码兼容键 tableView'

我知道我不会返回一些通用视图控制器,因为它非常清楚地说明了我们正在谈论的视图控制器。文件所有者似乎已正确连接,其自定义类设置为MyDetailsViewController。即使我将鼠标悬停在代码中的 IBOutlet“圆圈”上,表格视图也会突出显示,以及当我在检查插座时将鼠标悬停在菜单上时。

可能完全不相关的是 xib 文件中的内部错误消息,它可能与我的问题有关,也可能不相关,我以前从未见过。您从该错误中获得的日志文件的开头是:

谁能帮我确定这里发生了什么?我会很感激。

这里还有一些截图:

【问题讨论】:

    标签: ios interface-builder xib xcode7 iboutlet


    【解决方案1】:

    init 之前,您应该先致电alloc

    // MyDetailsViewController *myDetailsVC = [MyDetailsViewController initWithNibNamed:@"MyDetails" withNotificationCenter:notificationCenter];
    MyDetailsViewController *myDetailsVC = [[MyDetailsViewController alloc] initWithNibNamed:@"MyDetails" withNotificationCenter:notificationCenter];
    

    【讨论】:

    • 我实际上是在你回复的那一刻开始这样做的。我需要取回一个实例方法——当然!!!顺便说一句,您以前在 xib 文件中看到过内部错误消息吗? (见第一张截图)
    • 对不起。我不太清楚你在说什么。你的问题解决了吗?
    • 我做了 - 看看我的第一个 xib 屏幕截图。看看它在哪里说“内部错误......”?如果您按照日志链接报告错误,我粘贴了所有内容的屏幕截图 - 不知道您是否知道。我可能会再发一篇关于这个的帖子:)
    • 让我们再发一个帖子。也有人有这个错误。 forums.developer.apple.com/thread/21641
    猜你喜欢
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多