2017-06-20 2 views
-1

In ViewController.swift sein muss, versuche ich, ref zu erstellenwarum ref = Database.database(). Referenz() innerhalb viewDidLoad func

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



    } 
} 

Es zeigt einen Fehler "Expect Deklaration".

Aber wenn ich ref = Database.database(). Referenz() zu drinnen viewDidLoad verschiebe, funktioniert es. Warum?

class ViewController: UIViewController { 
    var ref: DatabaseReference! 

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


    } 
} 

Antwort

3

Ich würde vermuten, dass Sie wollen, was dies zu erreichen ist:

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

Ihr Problem ist, dass Sie Wert auf zuvor deklarierte Eigenschaft in „Erklärung“ Block zuweisen möchten.

Es funktioniert im zweiten Fall, weil Sie bereits Eigenschaft deklariert haben und Sie geben Sie einen neuen Wert in einer Ihrer Methoden. viewDidLoad ist nur eine von allen anderen Methoden, die Sie es in getan haben könnte.

Sie könnten Sprachreferenz here besonders gespeicherten Variablen und gespeicherte Variableneigenschaften

lesen wollen
Verwandte Themen