2016-03-03 39 views
-5

,我在一个iOS的课程,跨这个错误来,同时使我的应用程序:预计申报错误(while循环)

import Foundation 
import UIKit 

class RootsCateogry1: ViewController { 

    @IBOutlet weak var roots1Label: UILabel! 

    var rootsWeek1 = ["acro", "micro"] 
    var rootsWeek1Meaning = ["Air", "Small"] 
    var roots1Show = [] 
    var temp = rootsWeek1.count // error here 
    var p = 0 

    var i = 0 
    while(i<temp){ // error here 
     roots1Show.append(rootsWeek1temp) 
     temp++ 
    } 

    // ... 
} 

Screenshot

+2

将来,请在问题中添加代码,而不是屏幕截图。它可以帮助人们找到解决方案! – Ollie

+0

看起来您已经忘记添加'viewDidLoad'函数,只需将代码(从'var rootsWeek ...'到''while''子句的末尾)包裹起来,它应该从那里开始工作。 – Ollie

回答

1

temp是计算属性,而不是一个编译时间常数。要么你需要重写它的getter或把它放在initviewDidLoad

var temp: Int { 
    return rootsWeek1.count 
} 

或:

override func viewDidLoad() { 
    super.viewDidLoad() 

    var temp = rootsWeek1.count 
} 

while循环,必须在功能去的,它不能在类级别存在。考虑将其移至viewDidLoad。在将其添加到roots1Show之前,您也没有声明名为rootsWeek1temp的变量,因此如果对象不存在,编译器将不知道要追加到数组中的内容。