Как зациклить использование Snapshot.children после преобразования снимка? - PullRequest
2 голосов
/ 12 марта 2019

Я использовал for val in snap.children В прошлом, чтобы циклически перебирать данные в правильном порядке. (В противном случае данные не будут зацикливаться на том, как данные форматируются в БД, и ожидаемо).

Теперь, однако, у меня есть данные, которые я передаю объекту, который хранит данные, чтобы затем использовать их в другом VC.

func fetchAllUserFirstPostMedia(user: String) {

    let databaseN = Database.database().reference()


        databaseN.child("Posts").child(user).observe(.value, with: {(snapshot) in

            guard snapshot.value as? [String: AnyObject] != nil else { return print("\(snapshot.value) <-- this is snapshot.value in return statement") }

            let userUID = user

            if user == userUID {

                guard let postDictionary = snapshot.value as? [String:AnyObject] else { return }

                for anyPosts in postDictionary {
                    print("inside the anyPosts")

                    let currentPost = Post()

                    let userObj = User(theuserID: userUID)
                    self.retrieveUsersInfo(userObj: userObj)



                        guard let posts = anyPosts.value as? [String:AnyObject] else { return }
/

/I pass this posts value into an object later in the code (object.snapshot = posts)

...

Тогда, однако, из другого VC я не могу перебрать с помощью .children, или, по крайней мере, так кажется. Можно ли преобразовать тип в DataSnapshot и выполнить цикл таким образом? Какое здесь решение?

1 Ответ

0 голосов
/ 13 марта 2019

Отказ от ответственности : это предполагает, что ваши ключи являются числами или имеют числовое значение.

Я полагаю, что вы можете захотеть сделать что-то вроде следующего:

Во втором вашем VC вы можете просто использовать строку, подобную следующей, которая будет сортировать значения словаря.Таким образом, вы должны получить то же самое, что и если бы вы сделали .children.только вы бы зациклились на .values

Swift 4:

 dictionary = [String : AnyObject](uniqueKeysWithValues: dictionary.sorted{ $0.key < $1.key })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...