为什么这不起作用并产生"无法调用' =='使用类型'(UInt16,UInt16)'?" 错误的参数列表:
func performKeyEquivalent(theEvent: NSEvent) -> Bool {
let keyCode = theEvent.keyCode
return keyCode == kVK_Return as UInt16
}
这有效:
func performKeyEquivalent(theEvent: NSEvent) -> Bool {
let keyCode = theEvent.keyCode
return keyCode == UInt16(kVK_Return)
}
答案 0 :(得分:1)
我认为kVK_Return是#define
或const整数,并且您正在尝试转换为unsigned int。在swift中,没有从一种类型到另一种类型的隐式或显式转换,即使它是关于概念上相似的类型,如有符号和无符号整数。
而不是强制转换,您必须显式转换,以及您在第二段代码中执行的操作:您创建一个使用带符号整数初始化的UInt16
的新实例。