如何在Swift中为performFetchWithCompletionHandler调用completionHandler

Tob*_*idt 6 uiapplication swift

如何在Swift中为后台提取调用完成处理程序.我做以下事情:

func application(application: UIApplication,
    performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

    // Do something

    completionHandler (UIBackgroundFetchResultNoData) // This does not work :(

    return

}
Run Code Online (Sandbox Code Playgroud)

你能帮我么?谢谢,

托比

Ant*_*nio 7

枚举的情况是UIBackgroundFetchResult.NoData,所以正确的方法是:

completionHandler (UIBackgroundFetchResult.NoData)
Run Code Online (Sandbox Code Playgroud)

甚至:

completionHandler (.NoData)
Run Code Online (Sandbox Code Playgroud)

因为类型可以从闭包签名推断出来

提示:当不确定函数签名或枚举情况等时,在Xcode中写入类型,在这种情况下UIBackgroundFetchResult,然后cmd +单击它以转到定义,或者选项+单击以弹出其声明.这通常有很大帮助.