Parse Query findObjectsInBackgroundWithBlock出错

时间:2015-09-15 07:39:58

标签: swift parse-platform swift2 xcode7

我是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()
        }

  }

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

  1. (对象:[AnyObject] !,错误:NSError!) - >无效
  2. (对象:[AnyObject],错误:NSError?) - >无效
  3. (对象:[AnyObject] ?,错误:NSError) - >无效
  4. (对象:[AnyObject],错误:NSError) - >无效
  5. 我试过的所有选项都给了我同样的错误: '([AnyObject] !, NSError!) - >虚空'不能转换为' PFQueryArrayResultBlock?'

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

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

    提前感谢您的帮助。

1 个答案:

答案 0 :(得分:14)

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

所以而不是:

findTimelineData.findObjectsInBackgroundWithBlock {
    (objects:[AnyObject]?, error:NSError?) -> Void in

使用:

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

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