Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift 3中的背景任务_Swift_Background Task - Fatal编程技术网

swift 3中的背景任务

swift 3中的背景任务,swift,background-task,Swift,Background Task,对于后台任务,什么等效于响应选择器?我在Objective-C中找到了代码。我正试图在Swift中找到同样的代码 以下是Objective-C代码: if ([application respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]){ bgTaskId = [application beginBackgroundTaskWithExpirationHandler:^{ }) Swi

对于后台任务,什么等效于响应选择器?我在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中复制的确切内容是什么?

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

但是Swift选择器应该是:
beginBackgroundTask(expirationHandler:)


在尝试将Objective-CAPI转换为Swift时,这里有一个简单的技巧。在Xcode或联机中调出API文档。选择Objective-CAPI。找到要转换的方法。然后将文档切换到Swift API。在这种情况下,您现在将看到相同的方法,但使用Swift。

尝试
#选择器(beginBackgroundTask)
什么是
应用程序的类型
?让application=UIApplication.shared application声明就是这个