ios - 解析 iOS 如何通过在相关 PFObject 中找到的属性查询对象?

标签 ios parse-platform pfquery

我正在编写一个 iOS 应用程序,我正在使用 Parse 在服务器端存储数据。

我有用户,每个用户都可以拥有一辆汽车。

我想弄清楚如何编写一个查询,使我能够获取所有拥有年份小于 2000 年且具有特定颜色(假设为红色)汽车的用户。

每辆车与用户都有关系,每个用户也与他们的汽车有关系。

用户<->汽车(一对一)

我开始使用 PFQuery:

PFQuery * userQuery = [PFQuery queryWithClassName:@"User"];

我不确定如何处理查询中的关系。所以,我几乎不确定如何完成这项工作。

有什么建议吗?

最佳答案

首先,User 类是一个特例,在查询中使用它时,您需要这样做:

PFQuery *query = [PFUser query];

接下来,构建所需查询的方式取决于指针的位置。如果 User 有一个 car 属性,它是指向 Car 的指针,那么查询将如下所示:

PFQuery *userQuery = [PFUser query];

PFQuery *carQuery = [PFQuery queryWithClassName:@"Car"];
[carQuery whereKey:@"year" lessThan:@(2000)];
[carQuery whereKey:@"color" equalTo:@"red"];

[userQuery whereKey:@"car" matchesQuery:carQuery];
[userQuery includeKey:@"car"]

[userQuery findObjectsInBackgroundWithBlock:^(NSArray *users, NSError *error) {
    for (PFObject *user in users) {
        PFObject *car = user[@"car"];
        // read user/car properties as needed
    }
}];

如果 Car 类有一个 user 属性,您只需执行一个普通查询并添加以下行即可访问完整的 User > 对象:

[carQuery includeKey:@"user"];

关于ios - 解析 iOS 如何通过在相关 PFObject 中找到的属性查询对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522089/

相关文章:

ios - 如何使用解析保持当前用户 session 处于事件状态?

swift - 如何在 Parse 中识别收件人/发件人用户?

ios - 解析 PFQuery 谓词指针对象

ios - 当我进入场景时如何设置场景的缩放模式?

ios - 无法在 UITableViewController 中使用静态单元格

android - 解析 Android : ParseUser. logOut() 不会注销用户

ios - 检查 Parse 中是否存在一行,是否更新该行中的列而不是每次创建新行。 swift

ios - 如何格式化 NSDate 的布局而不转换为 NSString

iphone - 我们可以停止同步请求吗?如何?

android - 解析推送通知仅适用于模拟器