无法使用 SWIFT 2 中类型 '(String, (String) -> Bool)' 的参数列表调用'split'



错误:不能使用类型为'(String, (String) -> Bool)'的参数列表调用'split'

我想使用的代码:let nameArr = split(name) {$0 == "."}

string不再是CollectionsString不再符合CollectionType。您可以使用其他替代方法,例如函数componentsSeparatedByString:

var name = "Victor.Hello.GYTT" 
let nameArr = name.componentsSeparatedByString(".") // [Victor, Hello, GYTT]

另一个选择是使用characters属性:

let nameArr = split(name.characters) { $0 == "." }.map { String($0) }

在Xcode 7 beta 2中使用新的.init语法,其中init"现在可以像静态方法一样被引用",如下所示:

let nameArr = split(name.characters) { $0 == "." }.map { String.init }

或者使String也符合协议,但苹果决定将String的一致性删除为Sliceable,要小心。

你可以在@AirSpeedVelocity的博客中阅读更多关于Swift标准库在2.0 beta 1中的变化。真的很不错。

相关内容

最新更新