我现在正在练习Parse,我现在如何检索数据,但问题是 当我尝试在解析中保存对象时,我的第一个打印(postsArray)并没有显示任何内容。这是我的代码。
import UIKit
import Parse
class TableViewController: UITableViewController {
var postsArray = [PFObject]()
override func viewDidLoad() {
super.viewDidLoad()
fetchData()
print(postsArray)
tableView.reloadData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return postsArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("practiceCell", forIndexPath: indexPath)
// Configure the cell...
cell.textLabel!.text = postsArray[indexPath.row].objectForKey("text") as? String
return cell
}
func fetchData() {
//empty postArray
postsArray = []
//bring data from parse
let query = PFQuery(className: "Practice")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error) -> Void in
if error == nil && objects != nil{
for object in objects! {
self.postsArray.append(object)
print(self.postsArray)
}
}
}
}
}
附加数据后的打印方法,显示正确的数据,但viewDidLoad()中的第一个打印方法没有显示任何内容。所以我的tableView也没有给我看任何东西。
我阅读解析文档并搜索其他问题,似乎没有错,它不起作用。
你能给我一个建议吗?
答案 0 :(得分:0)
在您的查询完成后,您需要self.tableView.reloadData()
这将导致tableView
再次询问它的委托应该有多少行,这将在返回数据后准确。或者,您可以使用PFQueryTableViewController
来自行处理它的对象,使您更容易管理。