我是 Swift 和 Parse 的新手。 我正在使用 PFQueryTableViewController ,我想要呈现的对象是一个数组。 TableView 现在显示 Array 的第一个元素,indexPath.row = 0。 但是,当我重写 PFQueryTableViewController 并返回 3 时,出现错误。 如果计数有效,是否可以从 cellForRowAtIndexPath 传递带有全局变量的“ friend ”数组的计数?
查询表:
override func queryForTable() -> PFQuery {
var query : PFQuery = PFUser.query()!
var result = query.whereKey("username", equalTo: PFUser.currentUser()!.username!)
return result
}
cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! PFTableViewCell!
if cell == nil {
cell = PFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}
if let friends = object?["friends"] as? NSArray {
cell?.textLabel?.text = friends[indexPath.row] as? String
}
return cell
}
//可选的 numberOfRowsInSection
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
最佳答案
最佳做法是让您的 numberOfRowsInSection 返回您正在显示的集合的计数。见下文:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return currentUser!.friends?.count
}
如果您的 tableView 一次只显示一个用户的“ friend ”,那么您应该为您查看 friend 的 PFUser 设置一个类变量。您的 tableView numberOfRowsInSection 应该如上所示。如果你这样做,你的代码:
if let friends = object?["friends"] as? NSArray {
cell?.textLabel?.text = friends[indexPath.row] as? String
}
简单地变成:
cell?.textLabel?.text = currentUser!.friends[indexPath.row] as? String
关于ios - swift : Parse PFQueryTableViewController - numberOfRowsInSection when PFObject is Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620210/