Грешката: Не може да се извика „split“ със списък с аргументи от тип „(String, (String) -> Bool)“
Код, който искам да използвам: let nameArr = split(name) {$0 == "."}
Грешката: Не може да се извика „split“ със списък с аргументи от тип „(String, (String) -> Bool)“
Код, който искам да използвам: 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) }
С новия синтаксис .init
в Xcode 7 beta 2, където init
"вече може да бъде препратен като статични методи" по следния начин:
let nameArr = split(name.characters) { $0 == "." }.map { String.init }
Или направете String
също така да съответства на протокола, но Apple взе решение да премахне String
съответствието с Sliceable
, бъдете внимателни.
Можете да прочетете повече за забележителните промени в Промени в стандартната библиотека на Swift в 2.0 бета 1 в блога на @AirSpeedVelocity. Много хубаво.
Надявам се това да ви помогне.
name
, вижте моя отговор
- person Victor Sigler; 30.07.2015
split
по този начин, трябва да промените своя ред let nameArr = split(name) {$0 == "."}
за някое от горните, които ви обясних.
- person Victor Sigler; 30.07.2015