【发布时间】:2016-08-13 13:27:35
【问题描述】:
我是 Swift 新手,有一个关于回调/闭包的问题。在异步网络调用期间,不同的项目在不同的时间出现。我想知道在我们从返回的请求中寻找的所有内容之前,回调如何知道不被执行?
编辑:
dispatch_async(dispatch_get_main_queue(), {
//Array to store HingeImage objects
var myImageArray = Array<HingeImage>()
for items in parsedResult {
//Create custom objects with values needed
let finalObjects = HingeImage(dictionary: items as! [String : AnyObject])
myImageArray.append(finalObjects)
}
// Callback completion
callback(hingeImages: hingeImageArray, error: nil)
})
编辑 2:
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
callTheCallBackAndGrabData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func callTheCallBackAndGrabData() {
MainVC.requestWithCallback { (hingeImage, error) in
print(hingeImage)
}
}
}
【问题讨论】:
-
它读懂了程序员的想法并做“正确的事”™
-
关闭不知道..你应该告诉他们什么时候执行它......
标签: swift networking callback closures