如何在 Objective-C iOs 8 上将 ParseObject 存储在本地数据存储和 Parse Cloud 中?

Posted

技术标签:

【中文标题】如何在 Objective-C iOs 8 上将 ParseObject 存储在本地数据存储和 Parse Cloud 中?【英文标题】:How do I store ParseObject in both Local Datastore and Parse Cloud on Objective-C iOs 8? 【发布时间】:2015-07-20 16:23:00 【问题描述】:

我想将我的所有对象都保存在本地和云端,并且只从本地数据存储中读取。我的所有对象都应保存在本地和在线商店中,并且本地数据存储应同步到 Parse Cloud。

我希望我的应用程序可以离线工作,以便在任何地方使用它,但尽快将所有数据保存在云中,NetConnection 可用!

谢谢

【问题讨论】:

【参考方案1】:

首先你需要启用本地数据存储的使用:

[Parse enableLocalDatastore];

接下来,我总是使用

将新的 PFObject 保存到本地数据存储区
PFObject *userStat;
[userStat saveEventually];

这会将您的对象固定到本地数据存储并将其保存到云端(最终)。如果您想用云中的数据重置所有本地存储的数据,您可以;首先取消固定所有本地对象,然后获取所有远程对象并将它们固定在本地:

[PFObject unpinAllObjects];
PFQuery *query = [PFQuery queryWithClassName:@"UserStats"];
[query whereKey:@"parent" matchesQuery:query];

    return [[query findObjectsInBackground] continueWithBlock:^id(BFTask *task) 
        if (task.error)
             return nil;
        
         return [[PFObject pinAllInBackground:task.result]     continueWithBlock:^id(BFTask *task) 
            return task;
        ];
];

本地查询可以使用:

 [query fromLocalDatastore];

Parse 对这些方法有很好的文档here。

【讨论】:

感谢它的工作!但是我最终无法保存 pFfile ...在这种情况下您如何继续离线保存图片?谢谢 我收到此错误 [错误]:捕获“NSInternalInconsistencyException”,原因是“无法最终保存与新的未保存 PFFile 相关的 PFObject。” 不知道是什么导致了您的错误,但请查看此处的讨论:***.com/questions/28136175/… 和此处***.com/questions/28132351/… 看看***.com/questions/30213808/…

以上是关于如何在 Objective-C iOs 8 上将 ParseObject 存储在本地数据存储和 Parse Cloud 中?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 上将视频分享到 Facebook

iOS:在 iOS 7 和 iOS 8 上将约束应用于子视图的自动布局差异

为啥触摸 SCNView 顶部的滑块会在 iOS 8/Swift 上将相机移动到下方?

如何在 ios7 上将导航栏背景图像添加到 MFMailComposeViewController

如何在ios上将按钮动作捕获到javascript中?

如何在 MACOS 上将 Java 从 9 降级到 8。 Eclipse 未与 Java 9 一起运行