Невозможно добавить элементы из хранилища в массив до просмотра загрузок;стриж - PullRequest
0 голосов
/ 25 июня 2018

У меня есть приложение Picker View в моем приложении, и я хочу, чтобы оно отображало документы из коллекции в Firestore. Я знаю, что мой Picker View работает, но я не могу заставить элементы из firestore добавлять его до загрузки представления, поэтому они не отображаются в моем представлении выбора (или, по крайней мере, в этом-то и проблема).

Вот соответствующий код:

let db = Firestore.firestore()
let userID = Auth.auth().currentUser!.uid
lazy var pickerData: [String] = [String]()
lazy var pickedSchool = String()

override func viewDidLoad() {
    super.viewDidLoad()
    self.picker.delegate = self
    self.picker.dataSource = self
    pickerData += ["Select your school"]
    db.collection("schoolsUsing").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                let school = document.data()["school"] as? String
                self.pickerData += [school!]
                print("added " + school!)
            }
        }
    }
    for item in pickerData {
        print(item)
    }
}

Как видите, я поместил несколько «отпечатков» в консоль, чтобы лучше понять, что происходит, и вот консоль:

Select your school 
2018-06-25 10:25:32.379608-0400 Student Council App[3092:1552543] TIC Read Status [1:0x0]: 1:57
2018-06-25 10:25:32.525625-0400 Student Council App[3092:1552563] 4.11.0 - [Firebase/Analytics][I-ACS023007] Firebase Analytics v.40100000 started
2018-06-25 10:25:32.526111-0400 Student Council App[3092:1552563] 4.11.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled
2018-06-25 10:25:33.028197-0400 Student Council App[3092:1552540] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2018-06-25 10:25:33.030894-0400 Student Council App[3092:1552540] [MC]
Reading from public effective user settings.
added Longmeadow High School
added East Longmeadow High School

Мы можем видеть, что «выберите школу» появляется в самом начале, принимая команду из цикла for в конце viewDidLoad (), но «добавленная школа» появляется только в конце firebase mumbo-jumbo , Мне нужно, чтобы цикл for распечатывал все в pickerData в начале, чтобы он показывал и школы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...