swift - 如何使用字典将 NSButton 映射到 Int

标签 swift

我的界面有很多按钮。我想将它们放入字典中以将它们映射到数字。

我尝试了以下方法:

import Cocoa

class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet var window: NSWindow
    @IBOutlet var number0 : NSButton
    @IBOutlet var number1 : NSButton
    @IBOutlet var number2 : NSButton
    @IBOutlet var number3 : NSButton
    @IBOutlet var number4 : NSButton
    @IBOutlet var number5 : NSButton
    @IBOutlet var number6 : NSButton
    @IBOutlet var number7 : NSButton
    @IBOutlet var number8 : NSButton
    @IBOutlet var number9 : NSButton

    var number = Dictionary<NSButton, Int>()

    func applicationDidFinishLaunching(aNotification: NSNotification?) {
        number = [number0: 0]
    }

}

上面的代码可以正常编译(Retina MBP 2.6GHz i7),但是当我运行它时,它会抛出错误:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

如果我像这样将 Int 更改为 AnyObject

var number = Dictionary<NSButton, AnyObject >()

效果很好。

我做错了什么还是这是一个错误?

最佳答案

尝试在字典中使用 Integer。

var number = Dictionary<UIButton, Integer>()

Integer是Int实现的协议(protocol)。我不太确定为什么会这样。

关于swift - 如何使用字典将 NSButton 映射到 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24067187/

相关文章:

ios - 如何使用自定义 UITableViewCell 制作 Hozirontal UITableView

swift - UITableViewCell 中的 UILabel 设置为固定行数时会占用额外空间

swift - 向 uiview 添加约束时的 SIGABRT

ios - 如果应用程序设备方向是纵向如何在 ios、swift 2.3 中仅为一个 View Controller 设置强制横向

swift - 将 Swift uuid_t 传递给 C 函数

ios - 后台获取的替代方案

ios - 创建移动的新按钮时按钮停止移动

ios - 从 TableView 中选择时在多个详细 View 之间切换

ios - CLGeocoder 错误 EXC_BAD_INSTRUCTION

swift - 为什么我不能在协议(protocol)中声明动态变量