swift 3 中的后台任务
Background tasks in swift 3
什么相当于响应后台任务的选择器?我在 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-C API 转换为 Swift 时,这里有一个简单的技巧。在 Xcode 或网上找到 API 文档。选择 Objective-C API。找到您要转换的方法。然后将文档切换到 Swift APIs。在这种情况下,您现在将看到相同的方法,但在 Swift.
中
什么相当于响应后台任务的选择器?我在 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-C API 转换为 Swift 时,这里有一个简单的技巧。在 Xcode 或网上找到 API 文档。选择 Objective-C API。找到您要转换的方法。然后将文档切换到 Swift APIs。在这种情况下,您现在将看到相同的方法,但在 Swift.
中