问题是我希望获得所有objectIDs
,并且我希望最小化服务器和iOS应用之间的数据传输。所以,让我们说我在PARSE上有成千上万的PFObjects,它们会被更新和删除,我的应用程序需要在不使用推送通知的情况下更新其关于PARSE上存在的对象的知识(我正在处理这样的用户不允许的情况)。每次我的UIViewController
呈现数据,检索PFObjects'
ID并开始检查我的本地存储(不是PARSE本地数据存储,不同的)是否具有此类ID时,我不能只加载所有PFObject,因为{{ 1}}它们本身很大并且有很多它们,但是我可以加载所有PFObjects
。那么,怎么做呢,它有可能吗?
objectIds
PFQuery
的一些方法非常有用,但似乎没有这样的方法。
答案 0 :(得分:1)
您可以解决添加和更新情况,但对于删除它更容易使用简单的解决方案并定期请求所有对象。 以下是Update / Add对象案例的解决方案:
并保存最近更新的日期 在第一个通过updatedAt:
解析set order对象的请求中[query orderByDescending:@"updatedAt"];//orderByDescending
对于任何未来查询设置大于:mostRecentUpdatedAt仅获取更新和添加的对象:
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"mostRecentUpdatedAt"]){
NSDate* mostRecentUpdatedAt = [[NSUserDefaults standardUserDefaults] objectForKey:@"mostRecentUpdatedAt"];
[query whereKey:@"updatedAt" greaterThan:mostRecentUpdatedAt];
}
保存mostRecentUpdatedAt以进行未来查询:
if (results.count) {
PFObject* firtObj = [results firstObject];
NSDate* mostRecentUpdatedAt = firtObj.updatedAt;
[[NSUserDefaults standardUserDefaults] setObject:mostRecentUpdatedAt forKey:@"mostRecentUpdatedAt"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
对于删除案例,您需要一个请求来计算一个或多个对象并与您的计数进行比较。这应该在检查添加/更新后立即完成,因为在这种情况下如果计数不匹配则存在删除情况。然后再次获取所有对象(由于已经删除了对象,因此无法识别已删除的对象!)。
答案 1 :(得分:0)
您无法仅针对objectId查询Parse DB。你必须拉动整个PFObject,然后循环并存储id并丢弃其余的。
或者,我认为您可以从您感兴趣的对象和用户创建PFRelation来跟踪这些对象。