我在使用查询检索关系中的对象时遇到问题。我尝试简化为一个淡化的示例,并能够使用 Parent
和 Child
类进行重现。
首先,我保存一个带有 2 个子对象的 Parent
对象:
let child1: PFObject = PFObject(className: "Child")
child1["name"] = "Child1"
let child2: PFObject = PFObject(className: "Child")
child2["name"] = "Child2"
let parent: PFObject = PFObject(className: "Parent")
parent["name"] = "Parent1"
parent.addObject(child1, forKey: "children")
parent.addObject(child2, forKey: "children")
parent.saveInBackgroundWithBlock { (success, error) -> Void in
print("success: \(success)")
}
现在,当应用程序运行并且 Parse 中有实际数据时,我尝试使用 PFQuery
获取它:
let query: PFQuery = PFQuery(className: "Parent")
query.findObjectsInBackgroundWithBlock { (result, error) -> Void in
print("result: \(result)")
}
我运行的前几次,打印结果给了我这样的东西:
result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children = (
{
<Child: objectId: 98dfjhwejf, blah blah...>
},
{
<Child: objectId: 34763kKJHF, blah blah...>
}
);
name = Parent1;
}])
然后突然间,在没有任何更改的情况下,我开始只为 children
取回一个 objectIds
数组:
result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children = (
{
objectId = W3XflnNQupF;
},
{
objectId = dI6Ky5n7lm;
}
);
name = Parent1;
}])
我还尝试使用 query.includeKey("children")
进行查询,但这没有改变任何内容。非常感谢这里的任何帮助。我一定错过了一些明显的东西。我认为 Parse 会让事情变得更容易。相反,我在看似简单的事情上浪费了大量时间。
最佳答案
将 Parent
类的名称更改为其他名称使一切重新开始工作。
关于ios - 在 iOS 中从解析中检索对象的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499503/