【问题标题】:Cannot convert value of type 'String' to expected argument type 'Int'无法将“String”类型的值转换为预期的参数类型“Int” 【发布时间】:2018-02-20 22:49:17 【问题描述】: 以下是元数据源代码,我无法摆脱那个错误。 我该如何解决? 源代码:元数据: 【问题讨论】: 标签: swift4 xcode9 【解决方案1】: 您在commonKey 上调用hashValue,这将产生Int 值。此表达式是 ?? 运算符的 LHS,其 RHS 是 String 值 - 所以你有一个类型不匹配;整个表达式是switch 的一部分,其中case 值是字符串。开启哈希值并不常见。 删除hashValue 可能会允许它编译,但它是否会按照你的意愿做我们不能说。 HTH 【讨论】: 我删除了 hashValue 但它仍然给我一个错误 “一个错误”不是很具体。更重要的是你要么(a)知道你试图打开什么,因为你编写了代码,或者(b)在调试别人编写的代码时需要弄清楚这一点。一旦您知道要打开什么,大概是某个字符串值,您需要编写适当的表达式来获取该值。如果您遇到困难,请提出一个新问题,说明您正在尝试做什么,您尝试过什么,出了什么问题,其中一些无疑会对您有所帮助。顺便说一句,将代码粘贴到您的问题中,而不是屏幕截图,因为这有助于人们试图帮助您。 谢谢,我从 github 得到了代码。我将源代码导入了一个新项目,所以它帮助我解决了问题