Как отобразить массив из Parse в tableView - PullRequest
0 голосов
/ 20 февраля 2019

В Parse у меня есть класс с именем Queries.В этом классе у меня есть столбец с типом массива с именем favorites Я хотел бы отобразить этот массив в UITableView Проблема в том, что запрос загружает столбец массива favorites как один массив, а не как несколько.
Например:
Строка 1 содержит ["Bananas"] в столбце избранного
Строка 2 содержит ["Apples", "Oranges"] в столбце избранного.
Строка 3 содержит ["Tomatoes"] в столбце избранного

Я быкак tableView, чтобы показать:
Бананы
Яблоки, Апельсины
Помидоры

Но теперь его показ:
Бананы
Яблоки
Апельсины

var favorites : [String] = []  

    let query = PFQuery(className: "Queries")
        query.findObjectsInBackground { (object, error) in
          if object != nil && error == nil {
            if let returnedObjects = object {
              for objects in returnedObjects {
               let getFavorites = objects["favorites"] as! [String]
                 self.favorites.append(contentsOf: getFavorites)

                   self.tableView.reloadData()
                            }
                    }
                }
            }

TableView заполняется так: cell.favoritesLabel.text = favorites[indexPath.row]

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Прежде всего измените ваш массив favorites на этот

var favorites: [[String]] = []

И измените этот self.favorites.append(contentsOf: getFavorites) На этот self.favorites.append(getFavorites)

Ошибка в том, что вы добавляете stringк массиву strings, игнорируя, что они вошли в array во-первых, теперь после этого вы можете уменьшить ваши элементы до одной строки, чтобы установить его в cell как это

cell.favoritesLabel.text = (favorites[indexPath.row])[1..<array.count].reduce(array[0]) { $0 + ", " + $1 }

0 голосов
/ 25 февраля 2019

Хотя это не совсем относится к вашему вопросу, я подумал, что должен упомянуть, что Parse iOS SDK действительно предоставляет набор готовых элементов пользовательского интерфейса, один из которых PFQueryTableViewController.

Если вы еще этого не сделали,возможно, стоит взглянуть на раздел PFQueryTableViewController в документации , чтобы узнать, не упростит ли это вашу реализацию в этом случае.

0 голосов
/ 20 февраля 2019

Ваша переменная favourites является массивом с одним измерением, поэтому вы должны либо объединить значения из одной строки, либо сделать его двумерным массивом и обработать его соответствующим образом.Для объединения значений замените строку append на следующую:

self.favorites.append(getFavorites.joined(separator: ", "))
...