从 iOS 中的解析检索 objects 的奇怪行为
Strange behavior retrieving objects from parse in iOS
我在使用查询检索关系中的 object 时遇到问题。我尝试简化为一个淡化的示例,并且能够使用 Parent
和 Child
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 的名称更改为其他名称使一切重新开始工作。
我在使用查询检索关系中的 object 时遇到问题。我尝试简化为一个淡化的示例,并且能够使用 Parent
和 Child
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 的名称更改为其他名称使一切重新开始工作。