为什么string.contains(“text”)不能在swift 5中使用字符串?

为什么string.contains(“text”)不能在swift 5中使用字符串?,swift,string,contains,Swift,String,Contains,无法将“String”类型的值转换为预期的参数类型“String.Element”(又名“Character”) 为什么版本5会出现这样的错误?我应该怎么做?当您使用包含()并向其传递字符串时,Swift尝试使用函数重载,该函数采用某种字符串,例如包含(uuOther:StringProtocol)函数,该函数不是纯Swift字符串的一部分。相反,它会发现包含(u.element:Character),它不能接受字符串作为参数,只接受'String.element'(也称为'Character'

无法将“String”类型的值转换为预期的参数类型“String.Element”(又名“Character”)


为什么版本5会出现这样的错误?我应该怎么做?

当您使用
包含()
并向其传递
字符串时,Swift尝试使用函数重载,该函数采用某种字符串,例如包含(uuOther:StringProtocol)函数,该函数不是纯Swift
字符串的一部分。相反,它会发现包含(u.element:Character),它不能接受字符串作为参数,只接受'String.element'(也称为'Character')。指

您要查找的函数是在一个协议中定义的,该协议名为
StringProtocol
,它位于
基础


因此,如果您需要它,请确保使用
import Foundation
或更高级别的框架,如
UIKit

当您使用
contains()
并向其传递
String
时,Swift会尝试使用函数重载,该重载会采用某种字符串,如contains(u其他:StringProtocol)不属于纯Swift
字符串的函数。相反,它会发现包含(u.element:Character),它不能接受字符串作为参数,只接受'String.element'(也称为'Character')。指

您要查找的函数是在一个协议中定义的,该协议名为
StringProtocol
,它位于
基础


所以如果你需要它,确保您
导入基础
或更高级别的框架,如
UIKit

您需要
导入基础
我刚刚在swift-5.0.2上尝试了您的代码,一切都很好。您需要
导入基础
我刚刚在swift-5.0.2上尝试了您的代码,一切都很好。要添加更多细节,这是从 StuttPrimult中看到的,它可以从基础文档中看到。为了添加更多的细节,它是从<代码> StrugTebug 中看到的。
let string = "hello Swift"
if string.contains("Swift") {
    print("exists")
}