- 批量检索:我有一批来自服务器的唯一数据流-用户ID
- 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和您的单例中其他与核心数据相关的通知。事实上,如果我完全理解您的需求,这可能是一个更简单的实现代码。
在任何情况下,以上任何一个建议都可以起作用。