在Swift中解析findObjectsInBackgroundWithBlock时出错

时间:2016-01-04 13:07:57

标签: arrays swift parse-platform

我正在尝试使用findObjectsInBackgroundWithBlock从Parse的服务器中检索用户名。我希望结果存储在NSArray中,但我在代码中出错。 就是这样:

let query: PFQuery = PFUser.query()!
    query.orderByAscending("username")
    query.whereKey("username", notEqualTo: myUserId as! String)

query.findObjectsInBackgroundWithBlock {(objects:NSArray?, error:NSError?) -> Void in

    }

我收到了这个错误:

  

无法转换类型'的值(NSArray?,NSError?) - > Void'到预期的参数类型'PFQueryArrayResultBlock?'

我知道在改变'NSArray'时一切正常吗?到'[PFObject]?',但我想结果成为一个数组..我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:0)

您无法在回调参数中强制转换。您的回调需要尊重将提供的类型,然后回调中的代码可以改变提供的参数并存储它们。

答案 1 :(得分:0)

您需要执行以下操作: 声明:

var array:NSArray = NSArray()


query.findObjectsInBackgroundWithBlock {(objects:PFObject?, error:NSError?) -> Void in

if error != nil {
print("error")
} else {
if let objects = objects{
for object in objects {

self.append(object)

}

}

}


    }