使用SWIFT 2中的拆分功能 [英] Using the split function in Swift 2
本文介绍了使用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的。
推荐答案
split
是CollectionType
的扩展中的一种方法,自SWIFT 2起,String
不再符合该方法。幸运的是,还有其他方法可以拆分String
:
使用
componentsSeparatedByString
:"ab cd".componentsSeparatedByString(" ") // ["ab", "cd"]
正如@dawg所指出的,这需要您
import Foundation
。可以使用
String
的字符,而不是对String
调用split
。characters
属性返回一个String.CharacterView
,它符合CollectionType
:"😀 🇬🇧".characters.split(" ").map(String.init) // ["😀", "🇬🇧"]
使
String
符合CollectionType
:extension String : CollectionType {} "w,x,y,z".split(",") // ["w", "x", "y", "z"]
虽然,由于Apple已决定取消
String
对CollectionType
的符合性,因此坚持使用选项1或2似乎更明智。
在SWIFT 3中,分别在选项1和选项2中:
componentsSeparatedByString(:)
已重命名为components(separatedBy:)
。split(:)
已重命名为split(separator:)
。
这篇关于使用SWIFT 2中的拆分功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文