Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 斯普利特现在抱怨失踪;isSeparator“;_Swift - Fatal编程技术网

Swift 斯普利特现在抱怨失踪;isSeparator“;

Swift 斯普利特现在抱怨失踪;isSeparator“;,swift,Swift,在最新的Swift 1.2升级之后,我不知道如何将一行文本拆分成单词。我曾经这样做过: let bits = split(value!, { $0 == " "}, maxSplit: Int.max, allowEmptySlices: false) 但这已经不起作用了,因为 Cannot invoke 'split' with an argument list of type '(String, (_) -> _, maxSplit: Int, allowEmptySlices: B

在最新的Swift 1.2升级之后,我不知道如何将一行文本拆分成单词。我曾经这样做过:

let bits = split(value!, { $0 == " "}, maxSplit: Int.max, allowEmptySlices: false)
但这已经不起作用了,因为

Cannot invoke 'split' with an argument list of type '(String, (_) -> _, maxSplit: Int, allowEmptySlices: Bool)'
嗯,好吧,即使我能持续建造?不管怎样,让我们试试

let bits = split(value!, { $0 == " "})
我能想到的所有其他版本最后都会说:

Missing argument for parameter 'isSeparator' in call
让我们为新编程语言的beta测试听一听吧!耶


有人知道1.2的正确秘方吗?

在Swift 1.2中,参数的顺序似乎发生了变化:

let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false,
                 isSeparator: { $0 == " "})
或者,使用默认值:

let bits = split(value!, isSeparator: { $0 == " "})
谓词现在是最后一个参数,需要外部 参数名
isSeparator
,因为它前面有可选参数

此更改的优点是可以使用尾部闭包 语法:


哈哈。谢谢苹果。感谢马丁,这确实解决了问题。是的,谢谢苹果。split函数中的更改可能导致了我在发布模式构建中遇到的一个特别严重的bug(请参见我的答案:)。
let bits = split(value!, maxSplit: Int.max, allowEmptySlices: false) { $0 == " " }
let bits = split(value!) { $0 == " " }