我为云的查询对象创建了一个表视图控制器,代码运行良好,但问题是当视图加载解析查询没有显示在表上时。
我尝试了一些解决方案,但大部分解决方案都是针对USER类而不是任何其他自定义类。
@IBOutlet weak var cloudsTable: UITableView!
var clouds: [PFObject] = [PFObject] ()
func loadClouds () {
let cloudsQuery = PFQuery(className: "_Clouds")
cloudsQuery.order(byAscending: "createdAt")
cloudsQuery.findObjectsInBackground(block: { (result, error) in
if error == nil
{
self.clouds = result!
self.cloudsTable.reloadData()
print(self.clouds)
}
})
}
此函数用于调用Clouds类以获取要查看的值
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return clouds.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cloudsCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let userObject:PFObject = clouds[indexPath.row]
cloudsCell.textLabel?.text = userObject.object(forKey: "user") as? String
return cloudsCell
}
这用于将解析查询传递给表函数。
答案 0 :(得分:0)
执行以下操作。我稍微编辑了你的代码。
确保您设置了delegate
和datasource
。在你的情况下你的云插座。
@IBOutlet weak var cloudsTable: UITableView!
var clouds = [PFObject]()
override func viewDidLoad() {
super.viewDidLoad()
loadClouds()
}
func loadClouds () {
clouds.removeAll()
let cloudsQuery = PFQuery(className: "Clouds") //Make sure class name is correct
cloudsQuery.order(byAscending: "createdAt")
cloudsQuery.findObjectsInBackground(block: { (result, error) in
if error == nil
{
self.clouds = result!
self.cloudsTable.reloadData()
print(self.clouds)
}
})
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return clouds.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cloudsCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
var recClass = PFObject(className: "Clouds")
recClass = clouds[(indexPath as NSIndexPath).row]
cloudsCell.textLabel?.text = recClass["user"] as? String
return cloudsCell
}
答案 1 :(得分:0)
我会使用 PFQueryTableViewController 将解析查询数据加载到表中。 Parse了解查询和将数据加载到表中是一种流行的功能,他们创建了一个非常简单的类来处理这个问题。查看下面的指南并查找 PFQueryTableViewController 。它处理来自数据加载/重新加载/缓存的所有内容,因此值得一看。如果您对如何实施它有任何疑问,请告诉我。