从 iOS 中的解析检索 objects 的奇怪行为

Strange behavior retrieving objects from parse in iOS

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

进行重现

首先,我保存一个 Parent object 和 2 children:

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 class 的名称更改为其他名称使一切重新开始工作。