如何使用swift 3正确表达这个'rangeOfCharacter'语句?

Mik*_*ong 2 xcode range ios swift swift3

我有一些逻辑允许我从我创建的字符集中听取编辑文本字段中的无效字符,显然是对swift 3语法中的重新排列,我得到以下错误:

Cannot invoke initializer for type 'Range<Index>' with an argument list of type '(DefaultBidirectionalIndices<String.CharacterView>)

在这行代码上:

 if let _ = string.rangeOfCharacter(from: invalidCharacters, options: [], range:Range<String.Index>(string.characters.indices))
Run Code Online (Sandbox Code Playgroud)

我查看了新的API文档,但似乎无法在swift 3中找到这行的正确格式...任何建议?

Leo*_*bus 6

您只需使用..<运算符来创建范围.注意:如果要检查整个字符串,可以省略选项和范围参数.

if let _ = string.rangeOfCharacter(from: invalidCharacters, options: [], range: string.startIndex..<string.endIndex) {

}
Run Code Online (Sandbox Code Playgroud)

或者干脆:

if let _ = string.rangeOfCharacter(from: invalidCharacters) {

}
Run Code Online (Sandbox Code Playgroud)