当未连接到xcode调试模式时,iOS7后台获取performFetchWithCompletionHandler在设备上不起作用

时间:2014-08-20 19:57:10

标签: ios objective-c xcode ios7

我为后台提取实现了performFetchWithCompletionHandler。我有本地通知设置,以便在数据发生变化时触发。出于测试目的,即使数据没有变化,我也会收到通知,因此我知道事情确实有效,而且我不必等待远程数据更改以测试我的应用程序。

在xcode的调试模式下,我使用"模拟背景提取"选项和后台提取按预期工作。通知按预期显示在模拟器上。

删除了手机上的旧应用。我将ip5设备连接到xcode并运行应用程序。应用程序在iphone上更新。在调试模式下,我执行"模拟背景提取"选项。我看到了我预期的本地通知。

现在我断开了设备的连接,我每小时都在打开和关闭应用程序(amlost!),但是后台提取甚至没有被触发过一次,我还没有看到任何本地通知。

我已设置代码来执行此操作:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

    return YES;
}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

在Xcode 5 Debug模式下,您可以强制从菜单中获取背景:Debug>模拟后台获取。

请检查此链接 performFetchWithCompletionHandler never gets fired

答案 1 :(得分:0)

希望情况并非如此:

你在做什么类型的背景提取?提取可能在调试器中工作一次而不是再次 - 然后当你运行实际的IPA时,因为你正在做一个dataTaskWithRequest或类似的东西 - 它不会工作。