为什么 string.contains ("text") 不适用于 swift 5 中的字符串?

Why does string.contains ("text") not work with strings in swift 5?

let string = "hello Swift"
if string.contains("Swift") {
    print("exists")
}

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

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

当您使用 contains() 并向其传递 String 时,Swift 会尝试使用函数的重载,该函数接受某种字符串,例如 contains( _ other: StringProtocol) 函数不是纯 Swift String 的一部分。相反,它发现 contains(_ element: Character) 并且它不能接受 String 作为参数并且只接受 'String.Element' (又名 'Character' )。参考contains

您要查找的函数是在 String 遵循的协议中定义的,名为 StringProtocol,位于 Foundation 中。

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