let string = "hello Swift"
if string.contains("Swift") {
print("exists")
}
无法将“字符串”类型的值转换为预期的参数类型“ String.Element”(又名“字符”)
为什么版本5会出错,该怎么办?
答案 0 :(得分:2)
当您使用renderFormats(){
const { formats } = this.state;
var formatsDOM = undefined;
if(formats !== undefined && this.state.selectedFormat !== undefined){
formatsDOM =
<Select
value={this.state.selectedFormat}
onChange={this.onExportChange.bind(this)}
disabled={!this.state.customFormatIsSelected}
inputProps={{
name: 'Format',
id: 'FormatInput',
}}
>
{formats.map( format => this.renderFormatEntry(format))}
</Select>
}
return formatsDOM;
}
并将其传递给contains()
时,Swift会尝试使用函数的重载,该函数需要某种字符串,例如 contains(__ other:StringProtocol)不属于纯Swift String
的函数。相反,它会找到包含(_元素:字符),并且它不能接受String作为参数,而只能接受'String.Element'(又称'字符')。引用contains
您要查找的函数是在String遵循的协议中定义的,称为String
,位于StringProtocol
内部。
因此,如果需要,请确保您使用Foundation
或更高级别的框架,例如import Foundation
。