使用SWIFT 2中的拆分功能 [英] Using the split function in Swift 2

查看:17
本文介绍了使用SWIFT 2中的拆分功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我想用空格拆分一个字符串。此代码片段在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测试版1的。

推荐答案

splitCollectionType的扩展中的一种方法,自SWIFT 2起,String不再符合该方法。幸运的是,还有其他方法可以拆分String

  1. 使用componentsSeparatedByString

    "ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
    

    正如@dawg所指出的,这需要您import Foundation

  2. 可以使用String的字符,而不是对String调用splitcharacters属性返回一个String.CharacterView,它符合CollectionType

    "😀 🇬🇧".characters.split(" ").map(String.init) // ["😀", "🇬🇧"]
    
  3. 使String符合CollectionType

    extension String : CollectionType {}
    
    "w,x,y,z".split(",") // ["w", "x", "y", "z"]
    

    虽然,由于Apple已决定取消StringCollectionType的符合性,因此坚持使用选项1或2似乎更明智。


在SWIFT 3中,分别在选项1和选项2中:

  • componentsSeparatedByString(:)已重命名为components(separatedBy:)
  • split(:)已重命名为split(separator:)

这篇关于使用SWIFT 2中的拆分功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆