我试图用这段代码获取一堆行
var query = PFQuery(className:"Test")
query.findObjectsInBackgroundWithBlock {
(objects: NSArray?, error: NSError?) in
// do something
}
但它没有编译,我收到以下错误:
无法调用' findObjectsInBackgroundWithBlock'使用类型'((NSArray?,NSError?) - > _)'
的参数列表
在the docs我找到了这个:
block:要执行的块。它应该有以下参数签名:
^(NSArray *对象,NSError *错误)
这似乎与我非常相似。我做错了什么?
答案 0 :(得分:4)
我遇到了同样的问题。你使用的是swift1.2吗?如果是这样,我认为这与展开"!"有关。尝试改变你的"!"到"?"
答案 1 :(得分:2)
试试这个 -
(objects:[AnyObject]!, error: NSError!) in
然后将[AnyObject]转换为[PFObject]
let myObjects = objects as? [PFObject]
答案 2 :(得分:0)
你试过吗
query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]!, error:NSError!) -> Void in
//code
}
答案 3 :(得分:0)
基本上说不再需要这两个问号了。
findObjectsInBackgroundWithBlock {(objects: NSArray?, error: NSError?)
变为
findObjectsInBackgroundWithBlock {(objects: NSArray, error: NSError
)
如果我错了,有人可以纠正我,但这是我从谷歌等处注意到的。
答案 4 :(得分:0)
在another post中找到正确的语法。参数列表或包装/解包对象没有错;相反,闭包必须作为参数传递给findObjectsInBackgroundWithBlock
。它的编写方式如下:
query.findObjectsInBackgroundWithBlock( { (NSArray results, NSError error) in
// do something
})