无法将'PFObject'类型的值转换为'NSArray'

时间:2015-08-21 00:28:40

标签: ios swift uitableview parse-platform

我有一个Parse查询,它返回一组用户(PFUsers)。我将它们放在一个数组中,以便它们可以用于填充tableView。但是,当我加载tableView时,我收到以下错误消息:Could not cast value of type 'PFObject' to 'NSArray'。这是相关的代码(我删除了一些东西,使其更容易阅读)。它非常浓缩,但我可以创造出所需的全部要点。

错误记录在行上:self.realMatches = result as! [PFObject]

import UIKit

class MatchesViewController: BaseViewController {

    var realMatches: [PFObject] = []

func loadMatches() {

        if let user = self.user {

            query{
                (results: [AnyObject]?, error: NSError?) -> Void in

                if error != nil {
                    println(error)
                } else {

                    if results != nil {
                        self.matchesResults = results!
                        for result in results!{
                            if result.objectId != self.currentUser!.objectId {
                                self.realMatches = result as! [PFObject]
                            }
                        }

                        for result in results! {
                            self.user1 = result["user1"] as! PFUser
                            self.user2 = result["user2"] as! PFUser
                        }

                        self.tableView.reloadData()
                    }
                }
            }
        } else {
            println("current user doesnt exist")
        }
    }
}

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("MatchCell", forIndexPath: indexPath) as! UITableViewCell

let object = matchesResults[indexPath.row]

return cell

如何安全地将PFUser存储在用于tableView的数组中?

谢谢!

1 个答案:

答案 0 :(得分:1)

result是您使用for循环从results数组的数组中提取的单个PFObject。

你应该简单地说

self.realMatches = result as! PFObject

但是self.realMatches是一个数组,因此分配也不起作用。您可以使用

将结果附加到数组中
self.realMatches.append(result as! PFObject)