在我的Parse.com项目中,我具有_User对象以及一些关联的对象(UserData,Team等)。然后,UserData对象具有字段,其中之一是groupIds。当我拉出UserData对象时(有时),groupIds字段返回一个空列表。我在下载对象后立即设置了一个断点(该对象未做任何事情)并检查了serverData和EstimatedData。经过一番调查,我发现serverData是一个HashMap,其中包含与ParseObject关联的所有键,值对。 HashHap存储在称为State的内部类中。 EstimatedData是同一件事,但它是ParseObject本身中的一个字段。根据我的收集,estimatedData是一个本地副本,可以与serverData比较以计算诸如ParseObject#isDirty之类的东西(如果对象已修改但未更改)。
因此,有了所有这些信息,我的问题就更加令人困惑:有时,下载后,groupIds值立即为空数组,但是groupIds的serverData值包含正确的列表。调用userData.fetch()和userData.fetchIfNeeded()不能解决问题。我不明白这些在下载后或提取后如何可能不同。这仅在此特定字段上的此特定ParseObject上发生。它也只会在Android上发生(此应用程序也可以在iOS上运行,但我没有这个问题)。如果有人知道解决方法的解决方案(即直接访问serverData),将不胜感激。我还通过ParseObject的Parse Android SDK源代码进行了梳理,找不到任何问题,但我可能错过了一些东西。谢谢!
最佳答案
记录下来,这是我要传递对该对象的引用,然后过滤其值而不进行复制的问题。这意味着当我尝试过滤时,实际上在脑海中处理副本时实际上是从对象中删除数据。这只是我,是一位经验不足的开发人员。