我是新来的斯威夫特和解析。
我正在使用PFQueryTableViewController,其中我要呈现的对象是一个数组。表视图现在显示了indexPath.row=0的数组的第一个元素。
但是当我重写PFQueryTableViewController并返回3时,会得到一个错误。
如果计数有效,那么可以从cellForRowAtIndexPath传递带有全局变量的“friends”数组的计数吗?
可查询:
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
}
//可选行数部分
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一次只显示一个用户的“朋友”,那么您应该为正在查看朋友的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:PFObject为Array时解析PFQueryTableViewController-numberOfRowsInSection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30620210/