在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]
答案 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,看看在这种情况下是否可以简化您的实现。