为什么这不能工作,并产生“不能调用'==‘与参数列表的类型'(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)
}发布于 2014-10-22 10:25:20
我假定kVK_Return是一个#define或const整数,您正在尝试将其转换为无符号int。在斯威夫特中,不存在从一种类型到另一种类型的隐式或显式转换,即使它在概念上类似于类型,比如有符号整数和无符号整数。
而不是强制转换,您必须显式转换,这就是在第二个代码片段中所做的工作:创建一个使用带符号整数初始化的UInt16的新实例。
https://stackoverflow.com/questions/26505235
复制相似问题