我是ios开发的新手,我最近发现了一个使用解析后端构建像ios app这样的高音扬声器的教程。我目前的设置是带有swift 2.0的Xcode 7.1,该教程是在较旧版本的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()
}
}
这里我试图访问/存储解析表/类中的所有数据到数组中。编辑器抱怨闭包参数(对象:[AnyObject] ?,错误:NSError?) - >无效。经过几次尝试,
我试过的所有选项都给了我同样的错误: '([AnyObject] !, NSError!) - >虚空'不能转换为' PFQueryArrayResultBlock?'
实际上对于(对象:[AnyObject] ?,错误:NSError?) - > Void in(我认为最有意义),编辑器会崩溃,如果我运行代码,我会得到一个seg错误。
有没有人遇到过类似的问题?或者知道修复?
提前感谢您的帮助。
答案 0 :(得分:14)
尝试将[AnyObject]?
更改为[PFObject]?
。这似乎是Swift 2.0所要求的。
所以而不是:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]?, error:NSError?) -> Void in
使用:
findTimelineData.findObjectsInBackgroundWithBlock {
(objects:[PFObject]?, error:NSError?) -> Void in
您还需要更改数组对象的迭代,因为它们现在已经是PFObject
。