我正在尝试建立一个名为NetwortRequests的类,我在那里调用Parse。试图弄清楚如何从这个课程中得到结果,并进入我调用此方法的课程。谢谢!
class NetworkRequests: NSObject {
class func retrieveCandidatesWithCompletion(complete: (result: NSArray) -> Void) {
let query = PFQuery(className:"Customer")
query.findObjectsInBackgroundWithBlock {
(objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil {
// The find succeeded.
print("This is object: \(objects)")
// populate results
complete(result: objects!)
}
}
} else {
// Log details of the failure
print("Error: \(error!) \(error!.userInfo)")
}
}
}
}
答案 0 :(得分:0)
在新的解析SDK中,completionHandler Block不会返回objects:[AnyObject]?
,但它们返回objects:[PFObject]?
。
所以试试这个:
class NetworkRequests: NSObject
{
class func retrieveCandidatesWithCompletion(complete: (result: NSMutableArray) -> Void)
{
let query = PFQuery(className:"Customer")
query.findObjectsInBackgroundWithBlock { (objects:[PFObject]?, error:NSError?) -> Void in
if error == nil
{
var dataToExtract:NSMutableArray = []
if let objects = objects
{
// The find succeeded.
print("This is object: \(objects)")
// populate results
for SingleObject in objects
{
let username = SingleObject["username"] as! String
dataToExtract.addObject(username)
complete(result: dataToExtract)
}
}
}
else
{
// Log details of the failure
print("Error: \(error!) \(error!.userInfo)")
}
}
}
}
答案 1 :(得分:0)
为什么不创建委托协议(使用receiveAllData(data:Array)之类的方法,并在完成块的NetworkRequests类中使用它。 然后,您可以在viewcontroller类中实现委托,并在完成块完成时更新它(文本字段等)并调用委托方法。 代表是在项目中发送数据的一种非常强大的方式。 Apple也一直使用它们: - )