我在使用查询检索关系中的对象时遇到问题。我尝试简化为一个淡化的示例,并且能够使用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;
}])
然后突然间,我没有改变任何东西,我开始只为objectIds
取回children
数组:
result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children = (
{
objectId = W3XflnNQupF;
},
{
objectId = dI6Ky5n7lm;
}
);
name = Parent1;
}])
我也尝试使用query.includeKey("children")
进行查询,但这并未改变任何内容。这里的任何帮助非常感谢。我一定错过了一些明显的东西。我认为Parse会让事情变得更容易。相反,我浪费了大量时间在看似简单的事情上。
答案 0 :(得分:0)
将Parent
类的名称更改为其他名称会使一切都重新开始。