【发布时间】:2015-06-18 05:59:20
【问题描述】:
我的应用启用了后台模式并选中了 Background Fetch,并且我验证了 plist 包含适当的 fetch 模式。
我还配置了间隔如下:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
return true;
}
我添加了如下处理程序:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// Get some new data here
completionHandler(UIBackgroundFetchResult.NewData);
}
我尝试去 Debug->Simulate Background Fetch,但无论如何它永远不会进入performFetchWithCompletionHandler。我还尝试在选中“由于后台获取事件而启动”选项的方案下运行该应用程序。在此方案下运行只需像往常一样在模拟器中启动应用程序,无需调用performFetchWithCompletionHandler。
有什么想法吗?
谢谢!
编辑:这似乎也影响了我的应用程序的发布版本,因此它可能不会与模拟器隔离。我正在运行 Swift 1.2。
编辑 2: 我的错误报告刚刚关闭,因为它与另一个概述相同问题的错误报告重复。仍然没有任何信息确认该问题与模拟器有关。
编辑 3: Xcode 6.4 Beta 2 发行说明中没有提及修复。 :-(
【问题讨论】:
-
Xcode 刚刚坏了。
-
@Tobias 你的意思是断言这个问题是孤立的 Xcode 而不是发布版本中的问题?或者你只是在做一个一般性的声明,即 Xcode 是……坏了。 :-)
-
只是肚子疼。目前,我正在尝试在设备上的调试版本中测试 Background Fetch。它所做的只是
println("Background Fetch"); completionHandler(UIBackgroundFetchResult.NewData)。到目前为止,我还没有在我的设备日志中看到该声明。 -
我刚刚确认您可以在设备上使用调试版本测试后台提取,方法是编辑方案、选择运行、选择选项并选中“由于后台提取事件而启动”跨度>
-
我只是将该信息放在答案中,以便添加视觉效果。希望它会帮助那里的人。
标签: ios xcode swift background-process