首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能用'(UInt16,UInt16)‘类型的参数列表调用’UInt16‘?

不能用'(UInt16,UInt16)‘类型的参数列表调用’UInt16‘?
EN

Stack Overflow用户
提问于 2014-10-22 10:17:38
回答 1查看 287关注 0票数 0

为什么这不能工作,并产生“不能调用'==‘与参数列表的类型'(UInt16,UInt16)'?”错误:

代码语言:javascript
复制
func performKeyEquivalent(theEvent: NSEvent) -> Bool {
    let keyCode = theEvent.keyCode

    return keyCode == kVK_Return as UInt16
}

这样做是可行的:

代码语言:javascript
复制
func performKeyEquivalent(theEvent: NSEvent) -> Bool {
    let keyCode = theEvent.keyCode

    return keyCode == UInt16(kVK_Return)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 10:25:20

我假定kVK_Return是一个#define或const整数,您正在尝试将其转换为无符号int。在斯威夫特中,不存在从一种类型到另一种类型的隐式或显式转换,即使它在概念上类似于类型,比如有符号整数和无符号整数。

而不是强制转换,您必须显式转换,这就是在第二个代码片段中所做的工作:创建一个使用带符号整数初始化的UInt16的新实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26505235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档