Я застрял, я думал, что у меня есть ответ, но 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 в порядке, сколько их будет, моя проблема будет исправлена.