为什么我通过在Swift Playgrounds中使用类而出错

时间:2018-10-30 09:32:42

标签: swift

我试图使用类型为Timer的类在swift Playgrounds中延迟延迟重复while子句,但出现错误:

  

需要声明!

我该怎么办?

class LedAnimation: Timer { 

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

}

4 个答案:

答案 0 :(得分:2)

这不是有效的课程。您在类中的代码应在函数中定义

class LedAnimation: Timer { 

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

}

答案 1 :(得分:1)

问题是您不能只在函数外部编写可执行代码。您需要将while循环包含在函数中。

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

但是,您也不应该像documentation明确声明的那样Timer的子类。

答案 2 :(得分:1)

由于while语句不能位于类主体中,因此您收到以下错误。

将其包装到function

class LedAnimation: Timer {

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

}

答案 3 :(得分:1)

您的可执行语句未放置在任何可执行范围内。您需要一个函数来包装可执行语句。

class LedAnimation: Timer {

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