如何从tableView中的解析显示数组

时间:2019-02-20 14:54:35

标签: arrays swift uitableview parse-platform

在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 :(得分:0)

您的favourites变量是一维数组,因此,您应该将单个行中的值连接起来,或者将其设为二维数组并进行适当处理。 要连接值,请用以下内容替换您的append行:

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

答案 1 :(得分:0)

首先将您的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 }

答案 2 :(得分:0)

尽管与您的问题并不严格相关,但我想我要提到的是,Parse iOS SDK确实提供了一组预构建的UI元素,其中一个是PFQueryTableViewController

如果您还没有这样做,可能值得看看PFQueryTableViewController section in the docs,看看在这种情况下是否可以简化您的实现。