如何使用词典将NSButton映射到Int

时间:2014-06-05 18:09:18

标签: 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 >()

它运作得很好。

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

1 个答案:

答案 0 :(得分:1)

请尝试在词典中使用Integer。

var number = Dictionary<UIButton, Integer>()

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