2015-02-16 2 views
1

Ниже код:Последовательные объявления в строке должны быть разделены символом ';' в течение цикла, даже если уже включен

import UIKit 

class ViewController: UIViewController, UITableViewDelegate { 

    @IBAction func sliderMoved(sender: UISlider) { 
     var sliderValue = Int(sender.value) 
     println(sliderValue) 
    } 

    @IBOutlet var sliderValue: UISlider! 

    var arr:[Int] = [] 

    for index in 0...21 { 
     arr.append(index) 
    } 

    println(arr) 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 20 
    } 

    /* 
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell") 
     cell.textLabel?.text = sliderValue.value * arr[indexPath.row] 
    } 
    */ 
} 

Это дает мне ошибку на линии 3.

Screenshot for error

** Я должен был удалить некоторый код, переполнение стека Бесполезный Мне не нравится этот код. Я удалил только код viewDidLoad и didReceiveMemoryWarning.

ответ

2

Это очень простое решение проблемы: нужно добавить пробел между ++ оператором и открывающей скобкой:

for var i = 0; i < 21; i++ { 
         ^

без этого, я думаю, что компилятор пытается рассматривать ++{ в качестве оператора.

Альтернативный способ инициализации массива с возрастающими числами:

var arr: [Int] = (0..<21).map {$0} 

Update

код должен идти внутри метода - вы не можете выполнить код на том же уровне свойств. Я предлагаю инициализировать это свойство inline, используя альтернативный метод, описанный в моем ответе, который должен работать.

Если вы все еще хотите использовать встроенную инициализацию, но у вас есть более сложный код для выполнения, вы также можете инициализировать свойство, определив замыкание и немедленно выполнить его:

var arr:[Int] = { 
    var array = [Int]() 
    for index in 0...21 { 
     array.append(index) 
    } 
    return array 
}() 
+0

Он по-прежнему дает мне такую ​​же ошибку. – kevini15

+0

@ kevini15 Pls double check, если вы написали его правильно. Вставка кода в игровое поле и добавление этого пустого произведения – Antonio

+0

Также возможно, что в другом месте есть другая ошибка - попробуйте комментировать цикл for и посмотрите, есть ли у вас ошибка – Antonio

0

Я предлагаю использовать быстрый синтаксис для цикла петли:

for i in 1..<21 { 
arr.append(i) 
} 
+0

Теперь это дает мне ошибку «Ожидаемое заявление» ...? но он работает на детской площадке. – kevini15

+0

, тогда в вашем коде должна быть ошибка где-то в другом месте, в соответствии с быстрой ссылкой, это действительное утверждение – hedzs

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

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