Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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/4/fsharp/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
Objective c iOS 7-每24小时更新一次数据_Objective C_Ios7 - Fatal编程技术网

Objective c iOS 7-每24小时更新一次数据

Objective c iOS 7-每24小时更新一次数据,objective-c,ios7,Objective C,Ios7,我正在创建一个需要每天(午夜)检查一次数据的应用程序。我知道iOS7中有后台获取模式,但据我所知,没有办法强制它在给定的时间间隔内更新。有没有办法做到这一点并通过Appstore审查 谢谢您的建议。没有真正的方法可以做到这一点,因为它要求您的应用程序在后台运行。后台运行模式仅限于音频、VOIP、位置和附件类型的应用程序 你可以做的只是在用户启动应用程序时检查你上次更新应用程序中数据的时间。这样,您将只在用户启动应用程序时更新数据,也只在用户真正使用应用程序时使用数据 只有当用户经常启动你的应用程

我正在创建一个需要每天(午夜)检查一次数据的应用程序。我知道iOS7中有后台获取模式,但据我所知,没有办法强制它在给定的时间间隔内更新。有没有办法做到这一点并通过Appstore审查


谢谢您的建议。

没有真正的方法可以做到这一点,因为它要求您的应用程序在后台运行。后台运行模式仅限于音频、VOIP、位置和附件类型的应用程序

你可以做的只是在用户启动应用程序时检查你上次更新应用程序中数据的时间。这样,您将只在用户启动应用程序时更新数据,也只在用户真正使用应用程序时使用数据

只有当用户经常启动你的应用程序并且iOS允许你的应用程序进行后台抓取时,后台抓取才会工作。iOS将决定何时允许你的应用程序进行后台刷新,而你对时间间隔几乎没有影响

UIApplicationBackgroundFetchIntervalMinimum

系统支持的最小获取间隔


也许这并不是你所期望的答案,但在iOS 7中有一个功能允许你每隔一段时间获取数据。 在这种情况下,iOS会根据您的应用使用情况智能地安排后台获取事件,并帮助您节省电池寿命。因此,这不会每24小时工作一次,但我认为你可以读取数据,如果数据已更新,请刷新应用程序,如果不忽略它。 在Xcode 5->目标->功能中,打开后台模式(后台获取)。 在应用程序中:didFinishLaunchingWithOptions添加:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];
这是一个将被调用的方法:

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
}

很抱歉,在iOS 7中有一个新的后台获取API。可以激活。是的,我知道这一点,正在编辑我的答案。但问题是要在规定的时间内更新。这是不可能的。谢谢你的回答。现在我正按照你说的做。当用户启动应用程序时,它会检查上次更新时间,如果是在24小时前,则会进行更新。应用程序将根据加载的数据向您发送一些通知。这就是为什么用户每天打开应用程序来加载数据会很好,但是自动更新数据,然后只发送通知。然后,新的iOS 7 backgroundFetch就是你想要研究的东西。但它应该在24小时检查的旁边实现,因为用户可以打开应用程序的后台获取。此外,还不确定提取是否成功。是的,这似乎是我唯一的解决方案。谢谢你的时间。是的,我知道这个方法,我可能会使用它。但我目前正在寻找一种基于时间间隔更新数据的方法。我认为如果你想让用户打开应用程序并获得新数据,这是唯一的方法。虽然数据不是100%是最新的,但您也可以在用户每次打开应用程序时运行检查,如果它已过期,则将其取出来。很抱歉,建议延迟,但您需要检查