swift中的后台任务3

时间:2018-06-10 11:55:30

标签: swift background-task

什么相当于为后台任务响应选择器?我在Objective-C中找到了代码。我试图在Swift中得到同样的东西。

这是Objective-C代码:

if ([application respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]){
    bgTaskId = [application beginBackgroundTaskWithExpirationHandler:^{
    })

Swift代码:

if application.responds(to: #selector(self.beginBackgroundTaskWithExpirationHandler)) {
    bgTaskId = application.beginBackgroundTask(expirationHandler: {() -> Void in
        print("background task \(UInt(bgTaskId!)) expired")
    })

它说BackgroundTaskManager没有成员' beginBackgroundTaskWithExpirationHandler'。

我们可以在Swift 3中复制的确切内容是什么?

1 个答案:

答案 0 :(得分:1)

除非您尝试支持iOS 3或更早版本,否则无需检查选择器是否存在,因为它是在iOS 4.0中添加的。

但Swift选择器将是:beginBackgroundTask(expirationHandler:)

在尝试将Objective-C API转换为Swift时,这是一个简单的技巧。在Xcode或在线提取API文档。选择Objective-C API。找到您要转换的方法。然后将文档切换到Swift API。在这种情况下,您现在将看到相同的方法,但在Swift中。