gpt4 book ai didi

objective-c - 文件的所有者认为它是父类(super class)

转载 作者:行者123 更新时间:2023-12-03 16:56:46 24 4
gpt4 key购买 nike

我的界面生成器发生了一些非常奇怪的事情。因此,我在 Xcode 中创建了一个 NSWindowController 子类,并启用了创建 XIB 选项。我开始编码,并成功连接到文件的所有者。

但是,当我运行我的应用程序时,我收到错误:

Failed to connect (workspaceControl) outlet from (NSWindowController) to (NSSegmentedControl): missing setter or instance variable
Failed to connect (workspaceField) outlet from (NSWindowController) to (NSTextField): missing setter or instance variable
Could not connect action, target class NSWindowController does not respond to -changeNumberOfWorkspaces:

我不知道为什么会出现此错误,因为我的代码设置正确:

working code

文件的所有者被设置为正确的类(AddController):

file's owner

那么为什么它尝试将我的 View 连接到 NSWindowController 而不是我的子类?

编辑:

我在代码中实际使用 AddController 的地方:

AppDelegate.h

appdelegate.h

AppDelegate.m

appdelegate.m

它位于 appdelegate 中,因为它是一个菜单栏应用程序。 (以防有人想知道)

最佳答案

因为在运行的程序中实例化的实际对象是 NSWindowController,而不是 AddController。您已经向我们展示了 AddController 已正确声明,并且您已经向我们展示了您的 Nib 的文件所有者已设置为 AddController;这太棒了,这就是为什么您不会收到有关连接不正确的编译时警告或错误的原因。但是您还没有向我们展示 Controller 对象实际实例化的位置;检查它可能会发现它尚未更改为 AddController。所以在运行时你有一个 NSWindowController ,这违反了你向 IB promise 的情况;所以你会得到运行时错误。

关于objective-c - 文件的所有者认为它是父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com