我是新来的斯威夫特和解析。
我正在使用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/

10-11 19:49