Parse Query findObjectsInBackgroundWithBlock出错

Sam*_* Hu 4 parse-platform swift xcode7 swift2

我是ios开发的新手,我最近发现了一个使用解析后端构建像ios app这样的高音扬声器的教程.我目前的设置是带有swift 2.0的Xcode 7.1,该教程是在较旧版本的swift上完成的,所以我不得不调整一些swift语法以使其工作.我做得很好,直到我遇到以下错误,

func loadData(){
    timelineData.removeAllObjects()
    var findTimelineData:PFQuery = PFQuery(className: "Tweet")

    findTimelineData.findObjectsInBackgroundWithBlock{
        (objects:[AnyObject]?, error:NSError?) -> Void in
        if (error == nil && objects != nil){
            for object:PFObject! in objects!{
               self.timelineData.addObject(object)
            }
            let array:NSArray = self.timelineData.reverseObjectEnumerator().allObjects
            self.timelineData = array as! NSMutableArray
            self.tableView.reloadData()
        }

  }
Run Code Online (Sandbox Code Playgroud)

在这里,我试图访问/存储解析表/类中的所有数据到数组中.编辑器抱怨闭包参数(对象:[AnyObject] ?,错误:NSError?) - > Void in.经过几次尝试,

  1. (对象:[AnyObject]!,错误:NSError!) - > Void in
  2. (对象:[AnyObject],错误:NSError?) - > Void in
  3. (对象:[AnyObject] ?,错误:NSError) - > Void in
  4. (对象:[AnyObject],错误:NSError) - > Void in

我试过的所有选项都给了我同样的错误:'([AnyObject]!,NSError!) - > Void'不能转换为'PFQueryArrayResultBlock?'

实际上对于(对象:[AnyObject] ?,错误:NSError?) - > Void in(我认为最有意义),编辑器会崩溃,如果我运行代码,我会得到一个seg错误.

有没有人遇到过类似的问题?或者知道修复?

提前谢谢你的帮助.

小智 14

尝试[AnyObject]?改为[PFObject]?.这似乎是Swift 2.0所要求的.

所以代替:

findTimelineData.findObjectsInBackgroundWithBlock {
    (objects:[AnyObject]?, error:NSError?) -> Void in
Run Code Online (Sandbox Code Playgroud)

使用:

findTimelineData.findObjectsInBackgroundWithBlock {
    (objects:[PFObject]?, error:NSError?) -> Void in
Run Code Online (Sandbox Code Playgroud)

您还需要更改数组对象的迭代,因为它们现在已经存在PFObject.