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 })
- 如何将string转换为unicode(UTF-8)string在Swift中?
- 在单独的View Controller上使用scrollViewDidScroll时,无法更改UINavigationBar的样式
- 如何在Objective-C中使用Twitter工具包的Digits用户login
- 如果应用程序进入后台模式,则会触发Ondisconnect
- 在iphone x屏幕底部获取空白(xcode 9)
- NSString常量可以弱链接?
- CLLocationManager AuthorizationStatuscallback?
- iOS —使用自定义表格视图单元格创建表格视图控制器
- 整数到NSInteger并保存到核心数据