gpt4 book ai didi

ios - 通过指针解析排序查询

转载 作者:行者123 更新时间:2023-11-28 18:59:22 25 4
gpt4 key购买 nike

我需要使用 Parse 进行简单的查询排序。

我有两个类:CaptainBoat。每个 Captain 都有一个 Boat 指针对象。

我在表格中列出了所有 Captain 对象及其属性,例如名称、Boat 名称等。

我需要能够通过 Boat 名称对 Captain 对象的查询进行排序。我该怎么办?

我可以使用 NSSortDescriptor 排序键对直接属性进行排序,例如 Captain name。但是我需要根据 BoatnameCaptain 对象进行排序。

最佳答案

如果您可以在排序限定符上使用点符号,那就太好了,例如:

[captainQuery orderByAscending:@"boat.name"];

不幸的是,属性点符号仅适用于 includeKey:。所以这样做的方法是获取,包括相关对象,然后使用相关对象的属性在本地排序:

// ...
[captainQuery includeKey:@"boat"];
[query findObjectsInBackgroundWithBlock:^(NSArray *captains, NSError *error) {
NSArray *sortedCaptains = [captains sortedArrayUsingComparator: ^(PFObject *capA, PFObject *capB) {
return [capA[@"boat"][@"name"] compare:capB[@"boat"][@"name"]];
// or reverse param order for descending
}];
}];

编辑 - @Logan 很有帮助地指出,如果您的查询页面涉及数千名船长,则此答案无法很好地扩展。如果船长人数众多,最好包含一条船 -> 船长指针并执行以下操作:

更迂回地说,您可以取船,按升序排列他们的名字,包括他们的船长(如果您的船有指向船长的后向指针),然后为他们的船长映射返回的(排序的)船。

关于ios - 通过指针解析排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com