2014-06-05 23 views
0

我有一个很多按钮的接口。我想将它们放在字典中以将它们映射到数字。如何使用字典将NSButton映射到Int

我尝试以下:

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] 
    } 

} 

以上代码编译罚款(视网膜MBP 2.6GHz的I7),但是当我运行它,它会引发错误:

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

如果更改IntAnyObject这样

var number = Dictionary<NSButton, AnyObject >() 

它工作得很好。

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

+0

如果您将0作为Int转换,会发生什么情况? – connor

+0

我得到完全相同的错误 –

回答

1

请尝试在字典中使用整数。

var number = Dictionary<UIButton, Integer>() 

Integer是Int实现的协议。我不完全确定这是为什么起作用。