我有一个UIViewController类,带有UITableViewDataSource和UITableViewDelegate。我还有一个按钮和一个TextField。 如果我单击按钮,我将一些数据发送到Parse.com,然后我希望数据显示在TableView中,所以我想我必须重新加载它。 当应用程序启动时,我想加载tableview中的所有数据 - 我想我必须在viewDidLoad()中执行此操作。
我为此写了一个课
import Foundation
import Parse
class DataHandler {
var className : String
init(className : String) {
self.className = className
}
func getAllObjects() -> AnyObject {
var output : AnyObject
var query = PFQuery(className:className)
query.findObjectsInBackgroundWithBlock {(objects, error) -> Void in
if error == nil && objects != nil {
var output = objects
} else {
println("Error getting data from \(self.className)")
}
}
return output
}
}
但这不起作用
答案 0 :(得分:0)
getAllObjects
函数将在后台查询运行之前返回。这意味着您在写入任何内容之前都会返回output
。
此外,您已在不同范围内定义了两个不同的var output
变量。您在块中分配的内容与方法开头定义的内容不同。
getAllObjects
不应该返回任何内容。让完成处理程序以应用程序需要的任何方式完成使用objects
的工作。