如何在 Swift 中设置网络请求 Class
How to set up Network Request Class in Swift
我正在尝试设置一个名为 NetwortRequests 的 class,我在其中执行对 Parse 的所有调用。试图弄清楚如何从这个 class 中获取结果并进入我调用此方法的 class 中。谢谢!
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)")
}
}
}
}
在新的解析 SDK 中,completionHandler 块没有 return objects:[AnyObject]?
,但它们 returned 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)")
}
}
}
}
为什么不创建委托协议(使用像 receivedAllData( data:Array )这样的方法,并在完成块的 NetworkRequests class 中使用它。
然后,您在 viewcontroller class 中实现委托,您可以在完成块完成并调用委托方法时更新它(文本字段等)。
委托是在您的项目中发送数据的一种非常强大的方式。 Apple 也一直在使用它们:-)
我正在尝试设置一个名为 NetwortRequests 的 class,我在其中执行对 Parse 的所有调用。试图弄清楚如何从这个 class 中获取结果并进入我调用此方法的 class 中。谢谢!
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)")
}
}
}
}
在新的解析 SDK 中,completionHandler 块没有 return objects:[AnyObject]?
,但它们 returned 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)")
}
}
}
}
为什么不创建委托协议(使用像 receivedAllData( data:Array )这样的方法,并在完成块的 NetworkRequests class 中使用它。 然后,您在 viewcontroller class 中实现委托,您可以在完成块完成并调用委托方法时更新它(文本字段等)。 委托是在您的项目中发送数据的一种非常强大的方式。 Apple 也一直在使用它们:-)