【问题标题】:Changing View Controller Causing NSUnknownKeyException in XCode在 XCode 中更改视图控制器导致 NSUnknownKeyException
【发布时间】:2020-08-07 01:01:23
【问题描述】:

我正在使用我在界面构建器中制作的导航视图控制器在我的应用中制作侧边菜单功能。

名为 Menu View Controller 的控制器是在名为 home 的控制器(第二个)中按下“Home”上方的按钮时滑出的菜单。菜单视图控制器由一个表格视图和四个表格视图单元格组成,其中每个菜单项是一个单元格。

在我的 HomeViewController 文件中,我编写了一个 switch 语句,每个 case 在其对应的菜单项(表格视图单元格)被按下时被调用:

我相信每个案例都被正确调用,因为当每个单元格被按下时打印语句都被写入控制台。如您所见,在“.my_dogs”的情况下,我编写了一个常量——第一张图片最右侧的故事板中的视图控制器。它只是有一个限制在中心的标签。

我相信这个常量被正确地实例化了,因为这些是界面构建器中最右边的故事板的身份:

“DogsViewController”类只是默认的 swift 文件(带有 viewDidLoad() 并且其中没有代码)。

现在问题来了:当我注释掉 present(dogsViewController, animated: true) 时,点击“我的狗”表格单元格时没有崩溃。当我添加它时,我收到以下错误:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Poochtime.DogsViewController 0x7fc60f916620> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key test.'

我也尝试过navigationController.pushViewController(dogsViewController, animated: false),这使得程序没有崩溃,但它为我提供了我想要的不同功能。当按下表格单元格“我的狗”时,我需要最右边的视图控制器(狗视图控制器)来接管屏幕,并且我需要它来继承导航控制器属性,如标题(导航标题为“主页”第二个视图控制器和标题上方的菜单按钮。

【问题讨论】:

  • "Poochtime.DogsViewController ... 这个类不符合键值编码的键测试。"打开情节提要,检查DogsViewController,如果它有一个不再存在的test 链接变量(我猜它已被删除?):选择ViewController,在右侧面板上选择Shows the Connection Inspector。删除test
  • 没有测试链接变量。我认为这不是问题,因为即使使用不同的新视图控制器,问题仍然存在。
  • 你能把 lcik 留在你的 DogsViewController 所在的情节提要上,显示源代码(应该显示 XML 代码),然后搜索“搜索”吗?
  • 打开故事板文件,而不是 swift 文件...
  • 搜索“测试”而不是“搜索”,因为我之前写错了

标签: swift xcode storyboard interface-builder viewcontroller


【解决方案1】:

要解决此问题,请右键单击 Main.storyboard 并选择“打开为 > 源代码”。这应该会打开情节提要的 XML 代码。从那里,Command+F 并搜索单词“test”。如果您找到与此相关的行,请将其注释掉。这似乎解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多