【问题标题】:How to fix error "Can't invoke 'findObjectInBackgroundWithBlock' with an argument list of type ((AnyObject!, NSError!) -> Void)如何修复错误“无法使用类型的参数列表调用'findObjectInBackgroundWithBlock'((AnyObject!,NSError!)-> Void)
【发布时间】:2015-04-19 23:55:22
【问题描述】:

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

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

})

【问题讨论】:

  • 对象,复数。试试objects: [AnyObject]!

标签: swift parse-platform


【解决方案1】:

如果您使用的是 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

})

这是不同的,因为 1.2 版的 swift update 使用可选选项发生了变化。

【讨论】:

  • 谢谢@RaVen,我有 Xcode 6.3 并且第一种方法有效
  • @PandurangYachwad 将我的问题标记为正确答案(答案左侧的标记)谢谢
  • 我没有将任何特定答案标记为正确,因为两者都是正确的。不管怎样,我会把它标记为正确的。
【解决方案2】:

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

如下:

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

})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多