2014-10-22 4 views
8

В быстрой книге, предоставленной Apple, есть фрагмент кода. Я набрал его на игровой площадке xcode, но он показывает, что ошибки «Оператор не является известным двоичным оператором» и «Использовать неразрешенный идентификатор». Код:Использование «..» для цикла

Xcode Playground code Согласно книге оператор «..» может использоваться с циклом for, чтобы сделать диапазон, который опускает его верхнее значение. Но он отображает ошибку. Изменение «..» на «...», похоже, исправляет ошибку. Но почему «..» не работает?

+0

Вам нужна последняя версия книги. Версия, которую вы имеете, - это бета-версия Swift. – Fogmeister

+0

Спасибо Fogmeister. –

ответ

16

У вас есть устаревшая версия быстрой книги.

Здесь вы идете. Текущая версия полузакрытого диапазона 0..<3 не 0..3https://developer.apple.com/library/ios/documentation/swift/conceptual/Swift_Programming_Language/BasicOperators.html

+0

Еще одна вещь, будут ли эти типы проблем появляться больше? Будут ли они постоянно менять синтаксис быстрого, если им это нравится? –

+0

Ну в последней версии (1.1) они добавили возможность иметь необязательные возвращения из init. Это было ошибкой для исправления ошибок и необходимости изменения кода, чтобы исправить это. В ответ на ваш вопрос, наверное, да. Свифт все еще очень молодой язык. Изменения между вашим кодом и текущей версией были выполнены до версии 1.0 и так ожидалось. С тех пор будет меньше изменений, но это не означает, что ничего не изменится. – Fogmeister

+0

Я читал старую версию swift ibook и даже Xcode был 6.0.1. Я обновил оба. Спасибо за информацию и быстрый ответ Fogmeister. –

1

вещь теперь отличается в Swift 2. Вот как сделать это сейчас в Xcode 7 (оригинальный вопрос показывает высоко в поиске Google для этой конкретной проблемы) :

for i in 1 ..< Process.argc { 
    let index = Int(i); 

    if let arg = String.fromCString(Process.unsafeArgv[index]) { 
     switch arg { 
     case "-whatever": 
      // do something 

     default: 
      break 
     } 
    } 
} 
+0

А, извините. Я изначально пришел сюда для проблемы «..», но я также пытался обработать аргументы командной строки. Мое опубликованное решение, очевидно, содержит больше, чем необходимо, но я полагаю, это не может повредить. –

Смежные вопросы