引用问题:https://stackoverflow.com/a/24725314/2909692,我有相同的应用程序要求,因为只有在从Web加载数据后才需要调用一系列方法。
我已经回顾并研究了答案(总结如下),但是不明白它是如何实现的,需要传递的参数是什么?
如何使用loadShows?
func application(application: UIApplication!, performFetchWithCompletionHandler completionHandler: ((UIBackgroundFetchResult) -> Void)!) {
loadShows() {
completionHandler(UIBackgroundFetchResult.NewData)
println("Background Fetch Complete")
}
}
func loadShows(completionHandler: (() -> Void)!) {
//....
//DO IT
//....
completionHandler()
})
答案 0 :(得分:1)
在func application
中,您可以看到他们拨打loadShows()
。
但他们用尾随闭包:
来称呼它loadShows() {
completionHandler(UIBackgroundFetchResult.NewData)
println("Background Fetch Complete")
}
这意味着代码块:
{
completionHandler(UIBackgroundFetchResult.NewData)
println("Background Fetch Complete")
}
作为参数传递给loadShows()
函数,在<{1}}代码的其余部分<{1}}之后执行 loadShows()
{调用{1}}(在“DO IT”之后)。