Ios &引用;错误:此对象在脱机缓存中不可用;仅在分析后端时发生几次

Ios &引用;错误:此对象在脱机缓存中不可用;仅在分析后端时发生几次,ios,parse-platform,local-datastore,Ios,Parse Platform,Local Datastore,我目前将parse backend添加到ios项目中,并将其定义为与本地数据存储一起使用。 这一切似乎都很好,除了有时我会收到“此对象在脱机缓存中不可用”这一问题,据我所知,在使用本地数据存储时根本没有缓存(在我的AppDelegate中像这样启用它:[Parse enableLocalDatastore];)。 问题是,如果我重新打开应用程序,最终将成功检索该对象。 以前有人遇到过这个问题吗 编辑: 我打电话的顺序是 PFQuery *query = [PFQuery queryWithCla

我目前将parse backend添加到ios项目中,并将其定义为与本地数据存储一起使用。 这一切似乎都很好,除了有时我会收到“此对象在脱机缓存中不可用”这一问题,据我所知,在使用本地数据存储时根本没有缓存(在我的AppDelegate中像这样启用它:[Parse enableLocalDatastore];)。 问题是,如果我重新打开应用程序,最终将成功检索该对象。 以前有人遇到过这个问题吗

编辑: 我打电话的顺序是

PFQuery *query = [PFQuery queryWithClassName:className];
[query fromLocalDatastore];
[query whereKey:someKey equalTo:someObject];
[query includeKey:@"someKey1"];
[query includeKey:@"someKey2"];
[query orderByAscending:@"date"];
[query findObjectsInBackground];
它是为ios sdk 8.0和parse sdk 1.7.2构建的


谢谢

在将不同对象固定到本地数据存储之前,需要创建该不可用对象的强引用。如果没有强引用,对象将从脱机缓存中清除,即使您锁定的当前对象和其他对象将被保存。因此,当您重新查询时,会收到上面的错误消息。

通过调用

[query includeKey:@"someKey1"];

对于所有指向所有可能需要的对象的指针。

我也有同样的问题。我的原因是我在代码中的两个位置固定了相同名称的相同查询对象。当我使用name函数移除pin并简单地将其固定时。对我来说一切都很好。

我在使用parse live query时收到此错误。我发现,每当一个对象通过我的实时查询被“更新”时,它都需要被完全重新定位以消除这个错误。我在忙着写名字。这是我的职责

extension PFObject {
func repin(className:String, completion: @escaping () -> Void) {
    self.unpinInBackground(withName: className) { (success, error) in
        if let error = error {
            print(error)
        } else {
            self.pinInBackground(withName: className) { (success, error) in
                if let error = error {
                    print(error)
                } else {
                    completion()
                }
            }
        }
    }
}
}

这里也有同样的问题。如果我在联机查询(我也在其中放置includeKey)后进行此查询,但在关闭应用程序并重新启动应用程序后,本地查询(无前述联机刷新)失败并出现此错误,则不会发生这种情况。在对同一对象类进行第二次查询后出现相同问题,但条件不同。该查询包含数组关系。我遇到了与版本1.7.5相同的问题。是否有人找到了解决方案?同样的事情也发生在我身上。