Swift2 在Swift 2中使用拆分函数

Swift2 在Swift 2中使用拆分函数,swift2,Swift2,假设我想用一个空格分割一个字符串。此代码段在Swift 1.x中运行良好。它在Xcode 7 Beta 1中的Swift 2中不起作用 var str = "Hello Bob" var foo = split(str) {$0 == " "} 我发现以下编译器错误: Cannot invoke 'split' with an argument list of type '(String, (_) -> _) 有人知道怎么正确地称呼这个吗 更新:添加了一条注释,说明这是针对Xcode

假设我想用一个空格分割一个字符串。此代码段在Swift 1.x中运行良好。它在Xcode 7 Beta 1中的Swift 2中不起作用

var str = "Hello Bob"
var foo = split(str) {$0 == " "}
我发现以下编译器错误:

Cannot invoke 'split' with an argument list of type '(String, (_) -> _)
有人知道怎么正确地称呼这个吗


更新:添加了一条注释,说明这是针对Xcode 7 beta 1的。

split
CollectionType
的扩展方法,从Swift 2开始,
String
不再符合。幸运的是,还有其他方法可以拆分
字符串

"ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
  • 使用由字符串分隔的
    组件

    "ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
    
    正如@dawg所指出的,这需要您
    importfoundation

  • 您可以使用
    字符串的字符,而不是对
    字符串调用
    split
    characters
    属性返回符合
    CollectionType
    String.CharacterView

    "

    Swift 4

    let str = "Hello Bob"
    let strSplitArray = str.split(separator: " ")
    strSplitArray.first!    // "Hello"
    strSplitArray.last!     // "Bob"
    
    雨燕4 Xcode 7.1.1和Swift 2.1
    在Swift 3中,通过字符串分离的组件和拆分的组件是这样使用的

    let splitArray = "Hello World".characters.split(separator: " ").map(String.init) // ["Hello", "World"]
    
    拆分


    谢谢。这很有帮助。看起来选项2可能是删除可切片的
    的预期替代品。选项1需要
    导入基础
    ,不是吗?值得注意的是,选项1和选项2不一样。例如,如果要分隔的字符串/字符出现在字符串的开头,请选择ion 1将返回一个数组,该数组在索引0中包含一个额外的空字符串,而选项2则不会。关于第二个解决方案:您将获得一个字符集合,然后按找到的位置拆分它们“
    。我不确定我是否理解其余的内容。那么,您是否尝试使用字符串构造函数将其转换为字符串/人类可读的值?
    init的作用是什么?它不应该是类似于
    String($0)
    ?如果字符串在两个单词之间有一个以上的空格怎么办?@zulkarnainsah同样的结果。
    let splitArray = "Hello World".characters.split(separator: " ").map(String.init) // ["Hello", "World"]