Использование функции enumerateLines в String в Swift
enumerateLines
функция СвифтаString
тип объявлен так:
enumerateLines(body: (line: String, inout stop: Bool) -> ())
Насколько я понимаю, это объявление означает: «enumerateLines - это функция, выполняющая замыкание,body
, который передается две переменные,line
а такжеstop
и возвращает пустоту. "
СогласноSwift Programming Language bookЯ считаю, что я должен быть в состоянии позвонитьenumerateLines
в краткой манере с замыкающим замыканием, вот так:
var someString = "Hello"
someString.enumerateLines()
{
// Do something with the line here
}
... но это приводит к ошибке компилятора:
Tuple types '(line: String, inout stop: Bool)' and '()' have a different number of elements (2 vs. 0)
Затем я пытаюсь явно указать аргументы и покончить с завершающим замыканием:
addressString.enumerateLines((line: String, stop: Bool)
{
// Do something with the line here
})
... но это приводит к ошибке:
'(() -> () -> $T2) -> $T3' is not identical to '(line: String.Type, stop: Bool.Type)'
Короче говоря, ни один из синтаксисов, которые я пробовал, не приводил к успешной компиляции.
Кто-нибудь может указать на ошибку в моем понимании и предоставить синтаксис, который будет работать, пожалуйста? Я использую Xcode 6 Beta 4.