如何检测核心数据存储中的新条目,而不必每隔x毫秒查询一次


  1. 批量检索:我有一批来自服务器的唯一数据流-用户ID
  2. GET请求操作:然后,我必须为每个用户ID单独发送GET网络请求(服务器端点一次只能处理一个用户)

为了确保在批处理检索和GET请求操作期间不会丢失数据,我考虑使用Core data将用户ID批处理的数据流保存在持久存储中。

然后,我想创建一个FIFO_UsersStillNeedingToBeSentToServerSingleton类,它将处理存储在持久存储中的数据的保存和检索。保存的任何用户id都必须立即向服务器发出GET网络请求,成功回调后,将从永久存储中删除,并转移到下一个用户id。

问题:如何避免每隔x毫秒对任何用户条目的持久存储进行ping?

理想情况下:我希望有一种方法可以让我的singleton类在FIFO堆栈中有数据时得到通知,从而执行必要的GET请求操作。

在您的单例中,您可以实现NSFetchedResultsController和NSFetched ResultsContrlerDelegate。您的委派方法controller:didChangeObject:atIndexPath:forChangeType:newIndexPath将在下划线数据更改时调用。不需要编写轮询代码来了解数据何时更改。

或者,您可以监听NSNotificationCenter NSManagedObjectContextDidSaveNotification和您的单例中其他与核心数据相关的通知。事实上,如果我完全理解您的需求,这可能是一个更简单的实现代码。

在任何情况下,以上任何一个建议都可以起作用。

最新更新