错误:无法使用类型为“(String, (String) -> Bool)”的参数列表调用“split”
我想使用的代码:let nameArr = split(name) {$0 == "."}
最佳答案
字符串不再是集合,String
不再符合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
也符合协议(protocol),但 Apple 决定删除 String
与 Sliceable
的一致性,请小心。
您可以在 Changes to the Swift Standard Library in 2.0 beta 1 中阅读更多关于显着变化的信息在@AirSpeedVelocity 的博客中。真的很不错。
希望对你有帮助
关于xcode - 无法在 SWIFT 2 中使用类型为 'split' 的参数列表调用 '(String, (String) -> Bool)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31727224/