Я не могу получить свои изображения в порядке от разбора - PullRequest
0 голосов
/ 10 июля 2019

Я застрял, я думал, что у меня есть ответ, но 25% времени я вызываю мою информацию из анализа, она не в правильном порядке. У меня есть переменная countsSorted, ключ которой является результатом запроса (строка), значение countsSorted является счетчиком этого запроса (Int).

Моя цель - отобразить изображение из ObjectID из строки в countSorted .... со связанным счетчиком в паре с.

Через форумы я понял, что вещи нужно сортировать, поэтому сделал это, как я прошел через мой код. Сначала я хотел записать ObjectIds вместо того, чтобы идти прямо к PFFile, я бы применил индекс и, надеюсь, использовал его для достижения своей цели. Я прочитал словарь, но это может помочь при работе [indexPath.row]. с этим.

Будет ли работать Struct? Я мог бы включить все свои ошибки в этот пост, но я прошу несколько советов и, надеюсь, объяснение того, почему это происходит, и каков мой следующий шаг, чтобы это исправить.

let usersQRCodes = PFQuery(className:"UserQRCodes")
            usersQRCodes.whereKey("userName", equalTo:     PFUser.current()!)
            usersQRCodes.findObjectsInBackground { (results, error) in
                if error != nil {
                    print(error!)
                } else if let results = results {
                    for object in results {
                        if let array = object["info"] as? String {
                            self.infoTakenFromUsersParse.append(array)
                            self.infoTakenFromUsersParse.sort(by: {$0 < $1})
                           }
                    }
                     self.infoTakenFromUsersParse.forEach {self.counts[$0, default: 0] += 1 }
                    let countsSorted = self.counts.sorted(by: {$0.value > $1.value})
                    print("This is countsSorted \(countsSorted)")

                    for (key, value) in countsSorted {
                        self.whatINeed.append(value)
                        self.numberOfStampees.append(key)

                   print("This is What I Need \(self.whatINeed)")
                   print("This is object in self.counts \(key)")
                    let getObjectId = PFQuery(className:"QRCodes")
                        getObjectId.whereKey("info", equalTo: key)
                        getObjectId.findObjectsInBackground { (results, error) in
                            if error != nil {
                                print(error!)
                            } else if let results = results {
                                for object in results {
                                 self.objectIds.append(object.objectId!)
                                    if let userImage = object["RewardCard"] as? PFFileObject {
                                    self.stampeeCardsPfile.append(userImage)
                                        self.myTableView.reloadData()
                                    }
                                }

                            }
                           self.myTableView.reloadData()
                        }
                    }
                }
            }
        }


Console: 

This is countsSorted [(key: "Nel\'s Nails", value: 3), (key: "Coffee Shop", value: 2), (key: "T-Bone", value: 1)]
This is What I Need [3]
This is object in self.counts Nel's Nails
This is What I Need [3, 2]
This is object in self.counts Coffee Shop
This is What I Need [3, 2, 1]
This is object in self.counts T-Bone
This is the ObjectsID Array ["u7mRy8bTUT"]
This is the ObjectsID Array ["u7mRy8bTUT", "xSQVuLHcj0"]
This is the ObjectsID Array ["u7mRy8bTUT", "xSQVuLHcj0", "SuXofzyoBD"]

// Это ячейка

self.stampeeCardsPfile[indexPath.row].getDataInBackground { (data, error) in
            if let error = error {
                print(error.localizedDescription)
            }else{

                if let imageData = data {

                    if let imageToDisplay = UIImage(data: imageData) {


                        self.stampeeCards.append(imageToDisplay)

                        cell.qrImage.image = imageToDisplay
                        cell.qrLabel.text = String(self.whatINeed[indexPath.row])


                    }
                }
            }

        }
        cell.stamps.image = self.collectedStampees[self.whatINeed[indexPath.row]]

        return cell

    }

Все работает нормально до массива objectsID, оно должно быть ["u7mRy8bTUT", "SuXofzyoBD", "xSQVuLHcj0"], но является случайным. Изображения загружаются в таком порядке, поэтому я надеюсь, что упорядочив эти objectIds в порядке, сколько их будет, моя проблема будет исправлена.

...