刷新解析本地数据存储区只读

Mon*_*lue 5 caching objective-c ios parse-platform

我们目前正在开发一个iOS应用程序,它显示了一个供用户在列表视图中查看的产品列表,其中包含一个相关的小PDF文件,我们希望利用Parse存储数据,因为我们可以轻松登录Parse并更新产品信息.

我正在努力使用Parse文档,理想情况是当应用程序启动时,我们希望它查询PFObject并获取我们类中的所有行以使用本地存储它们

[PFObject pinAllInBackground:objects];
Run Code Online (Sandbox Code Playgroud)

我们的应用程序还需要在将来发布时检查并刷新此数据存储,以确保提供最新的产品信息.

当用户查看我们要查询本地数据存储的产品列表以显示数据时,应用程序完全脱机工作.

我正在努力的是如何在重新启动用户时清除或刷新本地缓存不会对此本地数据进行任何更改而我正在考虑使用

  [PFObject unpinAllInBackground:objects];
Run Code Online (Sandbox Code Playgroud)

但是,当我们这样做,然后查询以确定所有本地数据存储区为空.

谢谢亚伦

Mon*_*lue 3

我设法自己通过以下方法解决了这个问题,它现在在后台线程中运行,首先取消固定所有类对象,然后再次获取并固定所有对象。

- (void)updateParseCacheForClass:(NSString *)className {

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{

        PFQuery *query = [PFQuery queryWithClassName:className];
        [query fromLocalDatastore];

        NSArray *objects = [query findObjects];
        if (objects) {
            [PFObject unpinAll:objects];
        }

        PFQuery *query2 = [PFQuery queryWithClassName:className];
        NSArray *objects2 = [query2 findObjects];
        if (objects2) {
            [PFObject pinAll:objects2];
            NSLog(@"Successfully retrieved %lu records. for %@", (unsigned long)objects.count, className);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)