2017-06-20 35 views
-1

在ViewController.swift裏面,我嘗試創建裁判爲什麼REF = Database.database()。參考()必須viewDidLoad中FUNC

class ViewController: UIViewController { 
    var ref: DatabaseReference! 
    ref = Database.database().reference() //ERROR: EXPECTED DECLARATION 
    override func viewDidLoad() { 
     super.viewDidLoad() 



    } 
} 

它顯示了一個錯誤 「期望聲明」。

但是,如果我將ref = Database.database()。reference()移動到viewDidLoad中,它就可以工作。爲什麼?

class ViewController: UIViewController { 
    var ref: DatabaseReference! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     ref = Database.database().reference() 


    } 
} 

回答

3

我猜想,你想達到什麼是這樣的:

class ViewController: UIViewController { 
var ref: DatabaseReference! = Database.database().reference() 
override func viewDidLoad() { 
    ... 
} 

你的問題是,你要的值分配給在「宣言」塊先前聲明的屬性。

它在第二種情況下工作,因爲您已經聲明瞭屬性,並且您在其中一個方法中爲其賦予了新值。 viewDidLoad只是你可以在做它的任何其他方法之一。

你可能想讀語言參考here尤其存儲的變量和存儲變量屬性