【问题标题】:When programming a segmented control in Cocoa, what does the error unrecognized selector sent to instance mean?在 Cocoa 中编写分段控件时,发送到实例的错误无法识别选择器是什么意思?
【发布时间】:2018-03-30 23:02:41
【问题描述】:

我想在 Cocoa 中实现分段控件,而不是在 iOS 中。我在 Xcode 的 IDE 中创建并填充了一个分段控件并将其连接到 IBOutlet:

@IBOutlet weak var prepChoice: NSSegmentedControl!

然后我把它附加到这个函数上:

@IBAction func getprepChoice(_ sender: Any) {

    switch prepChoice.indexOfSelectedItem
    {
    case 0:
        print( "zero" )
    case 1:
        print( "one" )
    default:
        break
    }
}

但是我遇到了“[General] -[NSView indexOfSelectedItem]: unrecognized selector sent to instance”的错误

这个错误是什么意思?

【问题讨论】:

  • 看来您已将普通的 NSView 连接到您的 getprepChoice 方法。您需要连接实际的分段控件。
  • 非常感谢 @rmaddy -- 就是这样。之前没有使用过这个,我认为是我错误地使用了这个功能。愚蠢的错误。

标签: swift xcode cocoa


【解决方案1】:

在正常情况下,当犯了没有在 Xcode 中连接正确的容器这样的愚蠢错误时,我会删除这个问题。但是,该错误非常具体,@rmaddy 立即对其进行了诊断,因此我将其留给其他可能在此上下文中搜索“无法识别的选择器发送到实例”错误的人。这个故事的寓意是,Xcode 通过从 xib GUI 拖动到 Swift 代码以将 GUI 小部件连接到它们的编码实现,确实使事情变得非常容易,但也很容易意外连接错误的容器。如果您收到此错误,请返回您的 xib GUI 并确保在创建实例变量时选择了正确的容器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多