2014-10-16 3 views
1

Почему он показывает ошибку в цикле даже после того, как я скопировал код с Apple's documentation?Что не так в следующем для синтаксиса цикла в Swift?

И вот здесь проблема. enter image description here


EDIT: Добавлен код
Вот весь мой код в этом классе

import UIKit 
import Alamofire 

import Foundation 
import SystemConfiguration 

class SignUpViewController2: UIViewController 
{ 
    for let index = 0; index < 3; ++index 
    { 
     println("index is \(index)") 
    } 

    for let i = 0; i < 3; i++ 
    { 
     print("HI") 
    } 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     if Reachability.isConnectedToNetwork() 
     { 
      println("YES") 
     } 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 



А вот изображение с ошибками целого класса

enter image description here

+3

Ничего, как я вижу. Это сработало для меня. Какую версию Xcode вы используете? Также вставьте всю функцию, в которой вы ее используете. – Gandalf

+0

Уверен, у вас есть синтаксическая ошибка в строках перед этим утверждением. – vikingosegundo

+0

Добавил код! – Developer

ответ

3
for var index = 0; index < 3; ++index 
{ 
    println("hi") 
} 

Это работает для меня на детской площадке.

Как можно больше не использовать ваш код, я могу только догадываться, но одна из возможных проблем может заключаться в том, что вы пытаетесь это сделать в быстром файле. В этом случае убедитесь, что цикл находится в функции, а не снаружи в определении класса. Я попробовал это, и это дает мне те же ошибки, но ошибки уходят при перемещении внутри любой функции

EDIT: -

Я вижу, что вы добавили код в определении класса, а не в каких-либо конкретных функциях , Измените код следующим образом: -

class SignUpViewController2: UIViewController 
{ 
    func forLoops() 
    { 
     for var index = 0; index < 3; ++index 
     { 
      println("index is \(index)") 
     } 

     for var i = 0; i < 3; i++ 
     { 
      print("HI") 
     } 
    } 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     if Reachability.isConnectedToNetwork() 
     { 
      println("YES") 
     } 
     forLoops() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

Это будет работать сейчас. Вы должны поместить все свои циклы и исполняемые операторы в функцию. Включать только объявления свойств, определения и функции в определении класса.

Надеюсь, это помогло.

EDIT2: - Проблема 2 заключалась в том, что вы написали свои циклы for с константой вместо переменной. Пожалуйста, измените

for let index = 0; index < 3; ++index 
{ 
    println("index is \(index)") 
} 

в

for var index = 0; index < 3; ++index 
{ 
    println("index is \(index)") 
} 

Вы не можете изменить значение константы, поэтому он давал проблемы у оператора инкремента.

+0

Я добавил причину внизу, почему она может не работать на основе моих собственных наблюдений. Почему мы не ожидаем ответа OP? –

+1

Поскольку вы фактически не отвечаете на вопрос (из-за этого неясно), вы запрашиваете дополнительную информацию. В StackOverflow это делается через комментарии, а не ответы. – blalasaadri

+0

Почему вы думаете, что это не может быть возможным ответом? >> «Вы пытаетесь сделать это на игровой площадке или в быстром файле? Если она находится в быстром файле, убедитесь, что цикл находится в функции, а не снаружи в определении класса.Я пробовал это, и это давало мне те же ошибки, но ошибки уходили, когда они перемещались внутри любой функции » –

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