我有PFQuery
includeKey
,然后我将对象传递给名为' queryArray'的数组。在函数cellForRowAtIndexPath
中,我试图访问数组但没有成功。
import UIKit
import Parse
class OrdensCompraTableViewController: UITableViewController {
var queryArray: [PFObject] = [PFObject]()
override func viewDidLoad() {
super.viewDidLoad()
var query = PFQuery(className:"Transacao")
query.includeKey("pointerUser")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) pedidos.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
self.queryArray = objects
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> OrdensCompraTableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("OrdensCompraCell", forIndexPath: indexPath) as! OrdensCompraTableViewCell
println(queryArray)
// let transacao = queryArray[indexPath.row] as PFObject
// cell.tituloCecula.text = transacao.objectForKey("objectId") as! String
// var ola = transacao.relationForKey("pointerUser.username")
//println( transacao.objectForKey("aceite"))
return cell
}
答案 0 :(得分:0)
在Parse数据进入后,你从未真正重新加载tableview。而且你的numberOfRowsInSection是硬编码的,这就是为什么tableView认为数组中没有数据的原因。
if let objects = objects as? [PFObject] {
self.queryArray = objects
// RELOAD TABLEVIEW
self.tableView.reloadData()
}
要修复部分中的行数,您应该返回self.queryData.count
答案 1 :(得分:0)
首先,如果要将解析对象添加到数组中,则应将其添加到数组:
var queryArray:NSMutableArray = []
override func viewDidLoad() {
self.queryArray = NSMutableArray()
..findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if error == nil {
for object in objects {
self.queryArray.addObject(object)
//reload UI components
}
然后您的numberOfSectionsInTableView
应始终反映该数组中的数字:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.queryArray.count
}
答案 2 :(得分:0)
你的问题是这个行方法应该返回 self.queryArray.count *
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
在将查询数据分配给PFObject数组后,您忘记了 reloadData()
和cellForRowAtPath需要将单元格对象分配给每个indexPath.row上的数据数组