Swift:Parse PFQueryTableViewController - 当PFObject是数组

时间:2015-06-03 12:32:58

标签: ios swift parse-platform

我是Swift和Parse的新手。 我正在使用PFQueryTableViewController,我想要呈现的对象是一个数组。表视图现在显示了indexPath.row = 0的Array的第一个元素。 但是当我覆盖PFQueryTableViewController并返回3时,我收到一个错误。 如果计数有效,是否可以从cellForRowAtIndexPath传递"朋友"具有全局变量的数组?

queryForTable:

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
    }

1 个答案:

答案 0 :(得分:0)

最佳做法是让您的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
相关问题