解析查询 findObjectsInBackgroundWithBlock 时出错
Error with Parse Query findObjectsInBackgroundWithBlock
我是 ios 开发的新手,我最近发现了一个使用解析后端构建类似 ios 应用程序的高音扬声器的教程。我当前的设置是 Xcode 7.1 和 swift 2.0,本教程是在 swift 的旧版本上完成的,所以我不得不调整一些 swift 语法以便让它起作用。在我遇到以下错误之前,我一直做得很好,
func loadData(){
timelineData.removeAllObjects()
var findTimelineData:PFQuery = PFQuery(className: "Tweet")
findTimelineData.findObjectsInBackgroundWithBlock{
(objects:[AnyObject]?, error:NSError?) -> Void in
if (error == nil && objects != nil){
for object:PFObject! in objects!{
self.timelineData.addObject(object)
}
let array:NSArray = self.timelineData.reverseObjectEnumerator().allObjects
self.timelineData = array as! NSMutableArray
self.tableView.reloadData()
}
}
这里我试图access/store将一个解析table/class中的所有数据放入一个数组中。编辑器抱怨闭包参数 (objects:[AnyObject]?, error:NSError?) -> Void in。经过几次尝试,
- (objects:[AnyObject]!, error:NSError!) -> Void in
- (objects:[AnyObject], error:NSError?) -> Void in
- (objects:[AnyObject]?, error:NSError) ->
中为空
- (objects:[AnyObject], error:NSError) ->
中为空
我尝试的所有选项都给了我同样的错误:
'([AnyObject]!, NSError!) -> Void' 不可转换为 'PFQueryArrayResultBlock?'
事实上,对于 (objects:[AnyObject]?, error:NSError?) -> Void in(我认为最有意义),编辑器会崩溃,如果我 运行代码我会得到一个段错误。
有没有人运行遇到过类似的问题?或知道修复方法?
提前感谢您的帮助。
尝试将 [AnyObject]?
更改为 [PFObject]?
。这似乎是 Swift 2.0 所要求的。
所以代替:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]?, error:NSError?) -> Void in
使用:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[PFObject]?, error:NSError?) -> Void in
您还需要更改对数组对象的迭代,因为它们现在已经是 PFObject
.
我是 ios 开发的新手,我最近发现了一个使用解析后端构建类似 ios 应用程序的高音扬声器的教程。我当前的设置是 Xcode 7.1 和 swift 2.0,本教程是在 swift 的旧版本上完成的,所以我不得不调整一些 swift 语法以便让它起作用。在我遇到以下错误之前,我一直做得很好,
func loadData(){
timelineData.removeAllObjects()
var findTimelineData:PFQuery = PFQuery(className: "Tweet")
findTimelineData.findObjectsInBackgroundWithBlock{
(objects:[AnyObject]?, error:NSError?) -> Void in
if (error == nil && objects != nil){
for object:PFObject! in objects!{
self.timelineData.addObject(object)
}
let array:NSArray = self.timelineData.reverseObjectEnumerator().allObjects
self.timelineData = array as! NSMutableArray
self.tableView.reloadData()
}
}
这里我试图access/store将一个解析table/class中的所有数据放入一个数组中。编辑器抱怨闭包参数 (objects:[AnyObject]?, error:NSError?) -> Void in。经过几次尝试,
- (objects:[AnyObject]!, error:NSError!) -> Void in
- (objects:[AnyObject], error:NSError?) -> Void in
- (objects:[AnyObject]?, error:NSError) -> 中为空
- (objects:[AnyObject], error:NSError) -> 中为空
我尝试的所有选项都给了我同样的错误: '([AnyObject]!, NSError!) -> Void' 不可转换为 'PFQueryArrayResultBlock?'
事实上,对于 (objects:[AnyObject]?, error:NSError?) -> Void in(我认为最有意义),编辑器会崩溃,如果我 运行代码我会得到一个段错误。
有没有人运行遇到过类似的问题?或知道修复方法?
提前感谢您的帮助。
尝试将 [AnyObject]?
更改为 [PFObject]?
。这似乎是 Swift 2.0 所要求的。
所以代替:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]?, error:NSError?) -> Void in
使用:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[PFObject]?, error:NSError?) -> Void in
您还需要更改对数组对象的迭代,因为它们现在已经是 PFObject
.