在iOS

时间:2015-12-28 19:28:43

标签: ios swift parse-platform pfquery

我在使用查询检索关系中的对象时遇到问题。我尝试简化为一个淡化的示例,并且能够使用ParentChild类重现。

首先,我保存了一个包含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会让事情变得更容易。相反,我浪费了大量时间在看似简单的事情上。

1 个答案:

答案 0 :(得分:0)

Parent类的名称更改为其他名称会使一切都重新开始。