почему ref = Database.database (). reference () должен быть внутри функции viewDidLoad

-2

В 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()


    }
}
Теги:
firebase
firebase-realtime-database

1 ответ

3

Я бы предположил, что вы хотите добиться этого:

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

Ваша проблема заключается в том, что вы хотите присвоить значение ранее объявленному свойству в блоке "объявления".

Он работает во втором случае, потому что вы уже объявили свойство, и вы придаете ему новое значение в одном из ваших методов. viewDidLoad - это всего лишь один из любых других способов, которыми вы могли бы это сделать.

Возможно, вы захотите прочитать ссылку на язык здесь, в частности, хранимые переменные и свойства хранимой переменной

Ещё вопросы

Сообщество Overcoder
Наверх
Меню