如何修复错误"无法调用' findObjectInBackgroundWithBlock'使用类型的参数列表((AnyObject!,NSError!) - > Void)

时间:2015-04-19 23:55:22

标签: swift parse-platform

对于以下代码,导致Can't invoke 'findObjectInBackgroundWithBlock' with an argument list of type ((AnyObject!, NSError!) -> Void)错误并且无法在后台运行解析查询。有什么想法吗?

var data = Query.findObjectsInBackgroundWithBlock(
        {(object:AnyObject!, error:NSError!) -> Void in

})

2 个答案:

答案 0 :(得分:4)

如果您使用的是swift 1.2(Xcode 6.3),则需要通过以下方式调用该函数:

var data = Query.findObjectsInBackgroundWithBlock({(objects:[AnyObject]?, error:NSError?) -> Void in

})

如果您使用的是swift 1.1(Xcode 6.1,6.2),则需要通过以下方式调用该函数:

var data = Query.findObjectsInBackgroundWithBlock({(objects:[AnyObject]?, error:NSError!) -> Void in

})

这是不同的,因为swift更新1.2随着使用选项而发生了变化。

答案 1 :(得分:3)

您应该将object参数类型更改为AnyObject数组,并将两个参数类型更改为可选。所以参数应该是(object: [AnyObject]?, error: NSError?)

如下所示:

var data = Query.findObjectsInBackgroundWithBlock({(object: [AnyObject]?, error: NSError?) -> Void in

})