如何从Parse中的关系中获取父对象
比方说,我有一个与目标类Child具有一对多关系的Parent类。 父对象和子对象都不是用户创build的,我在数据浏览器中创build了这个对象,我不知道如何在一个子对象上设置一个关系或指针。 我可以没有问题地获得Parent的Child对象。 但是,我怎么能得到一个孩子的父母? 我不希望继续将父对象和子对象从VC传递给VC。 再次,两个对象都不是用户创build的,所以我不能这样做:
[Parent setObject:Child forKey:"child"];
然后像这样查询父类:
[query whereKey:@"child" isEqualTo:Child];
也查询所有的父母和他们的关系,然后得到那个特定的孩子,然后回到父母似乎是一个矫枉过正。
那么,怎样才能在数据浏览器的一个子对象上设置特定的父对象来指向父对象呢? 如果我只想使用Child对象,如何从代码中获得Parent对象?
这是使用反转指针可能更有用的情况。 如果你愿意的话,除了你现有的关系外,还可以做这件事,但是需要一些更好的保存逻辑。
只需将parent
列添加到types为Pointer<Parent>
。
要获得父母的所有孩子,只需查询:
[childQuery whereKey:@"parent" isEqualTo:parent];
要查询一个孩子,并获得父母:
[childQuery includeKey:@"parent"]; // filter as needed
在看起来是孩子的块,你可以使用:
PFObject *parent = child[@"parent"];
由于includeKey:
这将是一个完全填充的Parent
includeKey:
。
注意:如果你同时存在两个关系,那么创build新的对象会变得更加复杂,因为你必须保存父/子(用child.parent
取消设置),然后更新子项以指向父项并再次保存。