在Swift中使用解析云代码错误获得关系

时间:2015-09-09 04:32:38

标签: ios swift parse-platform pfquery pfuser

我有云代码,可以在用户访问朋友页面时搜索用户与其他用户的关系。

问题我正在填充我拥有的PFObject数组,它存储了用户朋友的信息,因此可以在tableview中显示。

这是我的云代码:

    Parse.Cloud.define("getFriends", function(request, response) {

    var userId = request.params.UserKey;

    var query = new Parse.Query(Parse.User);

    query.get(userId, {
        success: function(foundCurrentUser) {
            var currentUser = foundCurrentUser; 
            var relation = currentUser.relation("Friends");

            var getRelationQuery = relation.query();

             getRelationQuery.find().then(function(results){

             response.success(results);

             });
        },

        error: function(error) {

            response.error(error);
        }

    });
});

我检查我的日志并得到正确的回复。它包含JSON中的正确数据。

现在问题就在于此。我的iOS应用程序中的云查询是让我感到悲伤的原因。

    let currentUser: PFUser = PFUser.currentUser()!
    let params = NSMutableDictionary()
    params.setObject(PFUser.currentUser()!.objectId!, forKey: "UserKey")

    PFCloud.callFunctionInBackground("getFriends", withParameters: params as [NSObject : AnyObject], block: {
        (object:AnyObject?, error: NSError?) -> Void in

        if error == nil {

              self.currentUserFriendList.append(object as! PFObject)

        }
        else
        {
            println("didnt retrieve the carpoolers")
        }

    })

在代码行中,我遇到的问题是self.currentUserFriendList.append(object as!! PFObject),错误无法转换 '__NSArrayM' (0x111cd8448) to 'PFObject' (0x10fd8a818).

类型的值

我想用

for object in objects {
       self.currentUserFriendList.append(object as! PFObject)
}

但该块不是object:[AnyObject]

当我打印对象时,我得到包含在Optional中的正确关系,如此

Optional(( "<PFUser: 0x7fa5db4a6de0, objectId: 1FLleawAQz, localId: (null)> {\n Friends = \"<PFRelation: 0x7fa5db47b1a0, 0x0.(null) -> _User>\";\n email = \"test@test.com\";\n fullName = \"Tester \";\n profilePicture = \"<PFFile: 0x7fa5db4a0140>\";\n username = \"test@test.com\";\n}", "<PFUser: 0x7fa5db47d5f0, objectId: nqFBQYIVjD, localId: (null)> {\n Friends = \"<PFRelation: 0x7fa5db5c97b0, 0x0.(null) -> _User>\";\n email = \"test2@test.com\";\n fullName = test2;\n profilePicture = \"<PFFile: 0x7fa5db554400>\";\n username = \"test2@test.com\";\n}" ))

1 个答案:

答案 0 :(得分:0)

我能够得到正确输出的响应并将其附加到我的PFObjects数组中。

   if error == nil {
                let objects = response as! [PFObject]
                for object in objects as [PFObject] {
                self.currentUserFriendList.append(object as PFObject)
                println("\(object)")

                }