为什么这不起作用并产生“无法调用类型为'(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)
}
最佳答案
我认为kVK_Return是一个#define
或const整数,并且您尝试将其转换为unsigned int。快速地,没有从一种类型到另一种类型的隐式或显式强制转换,即使它是关于概念上相似的类型(如有符号和无符号整数)也是如此。
无需强制转换,而必须进行显式转换,这就是第二段代码中的操作:创建一个新的UInt16
实例,该实例以有符号整数初始化。
关于macos - 无法使用类型为'(UInt16,UInt16)'的参数列表调用'=='吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26505235/