Почему я получил ошибку при использовании класса в Swift Playgrounds - PullRequest
0 голосов
/ 30 октября 2018

Я пытался использовать класс с типом Timer, чтобы повторить предложение while с задержкой в ​​быстрых игровых площадках, но я получил ошибку:

Декларация ожидается!

Что я могу сделать?

class LedAnimation: Timer { 

    while ledAnimationVarible < 16 {
    allCircles[ledAnimationVarible].color = .blue
        ledAnimationVarible += 1
    }

}

Ответы [ 4 ]

0 голосов
/ 30 октября 2018

Ваши исполняемые операторы не помещаются в какую-либо исполняемую область. Вам нужна функция для переноса ваших исполняемых операторов.

class LedAnimation: Timer {

    func doSomething()
    {
        while ledAnimationVarible < 16 {
            allCircles[ledAnimationVarible].color = .blue
            ledAnimationVarible += 1
        }
    }
}
0 голосов
/ 30 октября 2018

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

class LedAnimation {
   func animateLeds(){
       while ledAnimationVarible < 16 {
           allCircles[ledAnimationVarible].color = .blue
           ledAnimationVarible += 1
       }
   }
}

Однако вы также не должны создавать подкласс Timer, как четко указано в документации .

0 голосов
/ 30 октября 2018

Вы получаете следующую ошибку, поскольку оператор while не может быть расположен в теле класса.

Оберните это в function

class LedAnimation: Timer {

    func foo() {
        while ledAnimationVarible < 16 {
            allCircles[ledAnimationVarible].color = .blue
            ledAnimationVarible += 1
        }
    }

}
0 голосов
/ 30 октября 2018

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

class LedAnimation: Timer { 

    func animateLed(ledAnimationVarible: Int) {
        while ledAnimationVarible < 16 {
            allCircles[ledAnimationVarible].color = .blue
            ledAnimationVarible += 1
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...