如何取回&;是否在ios上每午夜更新数据(目标C)?

如何取回&;是否在ios上每午夜更新数据(目标C)?,ios,objective-c,Ios,Objective C,我有一个应用程序,每次启动时都使用从web服务器获取数据的方法。 仅当远程数据中有更新时,才会获取数据 应用程序是否有办法在每个午夜运行fetch方法?添加此通知 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.fetchData), name: NSCalendarDayChangedNotification, object: nil) 但是,请注意,您的应用程序是沙盒的,因此,如

我有一个应用程序,每次启动时都使用从web服务器获取数据的方法。 仅当远程数据中有更新时,才会获取数据

应用程序是否有办法在每个午夜运行fetch方法?添加此通知

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.fetchData), name: NSCalendarDayChangedNotification, object: nil)
但是,请注意,您的应用程序是沙盒的,因此,如果该应用程序未处于活动状态,您不能期望发布此通知。然而,根据文件

如果设备在白天变化时处于睡眠状态,则此通知将在唤醒时发布。如果设备已休眠多天,则在唤醒时只会发布一条通知

所以至少你知道这是一个保证每天都打的电话。

添加此通知

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.fetchData), name: NSCalendarDayChangedNotification, object: nil)
但是,请注意,您的应用程序是沙盒的,因此,如果该应用程序未处于活动状态,您不能期望发布此通知。然而,根据文件

如果设备在白天变化时处于睡眠状态,则此通知将在唤醒时发布。如果设备已休眠多天,则在唤醒时只会发布一条通知


因此,至少您知道这是一个每天都有保证的调用。

专门为此创建的后台获取API。您可以在或专门为此创建的后台获取API中了解它。您可以在iOS中或

中了解它,没有办法每午夜运行一个方法。iOS最接近的是后台抓取,这是Igor讨论过的,但它是在操作系统选择的时间运行的,而不是按照预定的时间表。请参阅或使用静默通知即使应用程序处于非运行模式,您也可以使用静默通知。它将自动激活你的应用程序,你可以在需要时获取数据。在iOS中,没有办法每午夜运行一次方法。iOS最接近的是后台抓取,这是Igor讨论过的,但它是在操作系统选择的时间运行的,而不是按照预定的时间表。请参阅或使用静默通知即使应用程序处于非运行模式,您也可以使用静默通知。它将自动激活你的应用程序,你可以在需要时获取数据。这是一个iOS问题。但这看起来像是macOS的答案。这与iOS无关。@Rob,这是我为iOS社交网络应用程序所做的,我以前从未在macOS中开发过。对不起。我从“如果你的应用程序是沙盒”的评论中推断了太多,因为所有iOS应用程序都是沙盒的。底线是,在用户下次启动应用程序之前,对于所有实际用途来说,这不会做任何事情。我想我看不出这是如何解决OP的问题的。除非OP真的100000%需要在12点获取数据,否则我认为我的解决方案是好的。这是怎么回事?如果用户一周内没有启动应用程序,那么一周内什么都不会发生,对吗?我不认为这是行动的意图。当用户启动应用程序时检索数据是很简单的。(他已经这样做了,不需要通知。)他可能想在用户没有显式启动应用程序的情况下检索数据。这是一个iOS问题。但这看起来像是macOS的答案。这与iOS无关。@Rob,这是我为iOS社交网络应用程序所做的,我以前从未在macOS中开发过。对不起。我从“如果你的应用程序是沙盒”的评论中推断了太多,因为所有iOS应用程序都是沙盒的。底线是,在用户下次启动应用程序之前,对于所有实际用途来说,这不会做任何事情。我想我看不出这是如何解决OP的问题的。除非OP真的100000%需要在12点获取数据,否则我认为我的解决方案是好的。这是怎么回事?如果用户一周内没有启动应用程序,那么一周内什么都不会发生,对吗?我不认为这是行动的意图。当用户启动应用程序时检索数据是很简单的。(他已经这样做了,不需要通知。)他可能想检索数据,即使用户没有显式启动应用程序。