findObjectsInBackgroundWithBlock块签名不正确

我正试图用这段代码获取一堆行

var query = PFQuery(className:"Test") query.findObjectsInBackgroundWithBlock { (objects: NSArray?, error: NSError?) in // do something } 

但它没有编译,我收到以下错误:

无法使用类型’((NSArray?,NSError?) – > _)’的参数列表调用’findObjectsInBackgroundWithBlock’

在文档中我发现了这个:

block:要执行的块。 它应该具有以下参数签名:
^(NSArray *对象,NSError *错误)

这似乎与我非常相似。 我究竟做错了什么?

我有同样的问题。 你使用的是swift1.2吗? 如果是这样,我认为它与展开“!”有关。 尝试改变你的“!” 至 ”?”

尝试这个 –

 (objects:[AnyObject]!, error: NSError!) in 

然后将[AnyObject]转换为[PFObject]

 let myObjects = objects as? [PFObject] 

你有没有尝试过

 query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]!, error:NSError!) -> Void in //code } 

它基本上是说不再需要这两个问号。

 findObjectsInBackgroundWithBlock {(objects: NSArray?, error: NSError?) 

findObjectsInBackgroundWithBlock {(objects: NSArray, error: NSError

如果我错了,有人可以纠正我,但这是我从谷歌等处注意到的。

在另一篇文章中找到了正确的语法。 参数列表或包装/解包对象没有错; 相反,闭包必须作为参数传递给findObjectsInBackgroundWithBlock 。 它的工作原理如下:

 query.findObjectsInBackgroundWithBlock( { (NSArray results, NSError error) in // do something })