在ViewController.swift中,我尝试创建ref
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()
}
}
答案 0 :(得分:3)
我猜你想要达到的目的是:
class ViewController: UIViewController {
var ref: DatabaseReference! = Database.database().reference()
override func viewDidLoad() {
...
}
您的问题是您想要在"声明"中为先前声明的属性赋值。块。
它适用于第二种情况,因为您已经声明了属性,并在其中一个方法中为其赋予了新值。 viewDidLoad
只是您可以使用的任何其他方法之一。
您可能希望阅读语言参考here,尤其是存储变量和存储变量属性