1

我正在使用以下查询从 Parse.com 类中获取一些数据。

我想做的是RatingNSArrayrateObjects 中提取对象。我该怎么做呢?

谢谢你的帮助

 PFQuery *rateQuery = [PFQuery queryWithClassName:@"Rating"];
        [rateQuery whereKey:@"photo" equalTo:self.photo];
        [rateQuery includeKey:@"photo"];

    rateQuery.cachePolicy = kPFCachePolicyNetworkElseCache;
    rateQuery.limit = 20;

    [rateQuery findObjectsInBackgroundWithBlock:^(NSArray *rateObjects, NSError *error)
     {
         if( !error )
         {
             NSLog(@"rateObject %@", rateObjects);

         }
     }
     ];

这是NSLog输出:

rateObject (
    "<Rating:w9ENTO29mA:(null)> {\n    ACL = \"<PFACL: 0x1e0a5380>\";\n    Rating = 4;\n    fromUser = \"<PFUser:uV2xu0c3ec>\";\n    photo = \"<Photo:Rv4qqrHUPr>\";\n    toUser = \"<PFUser:uV2xu0c3ec>\";\n    user = \"<PFUser:uV2xu0c3ec>\";\n}",
    "<Rating:t3pjtehYR0:(null)> {\n    ACL = \"<PFACL: 0x1e0f9f90>\";\n    Rating = 5;\n    fromUser = \"<PFUser:uV2xu0c3ec>\";\n    photo = \"<Photo:Rv4qqrHUPr>\";\n    toUser = \"<PFUser:uV2xu0c3ec>\";\n    user = \"<PFUser:uV2xu0c3ec>\";\n}"
)
4

2 回答 2

4

您的NSArray遗嘱包含PFObjects,您可以像对待字典一样对待它。在上面运行的查询中,您收到了两个评级对象。如果这不是您想要的(您只想要一个对象),您可能需要重新审视您查询数据的方式。

假设您Rating在 Parse 中的类包含一个名为Rating您将像这样访问它的键:

[rateObject objectForKey:@"Rating"]

如果您愿意,还可以使用新的现代文字语法 -rateObject[@"rating"]

您需要遍历您的数组以查看所有已返回的评级对象,因此您最终可能会得到如下结果:

for (id item in rateObjects) {
    int ratingVal = [[item objectForKey:@"Rating"] intValue];
    NSLog(@"Rating: %d", ratingVal);
}

您可能会发现 Parse 的iOS 文档很有帮助 - 如果您不确定上面的代码实际做了什么,您可能需要查看数组以及它们在 Objective-C 中的工作方式。

于 2013-06-06T10:01:56.483 回答
4

尝试使用这个:

[rateQuery findObjectsInBackgroundWithBlock:^(NSArray *rateObjects, NSError *error)
 {
     if( !error )
     {
       NSMutableArray *data = [[NSMutableArray alloc]init];
      [data addObjectsFromArray:rateObjects];
       NSArray *rating_data = [data valueForKey:@"Rating"];
       NSLog(@"%@",[rating_data objectAtIndex:0]);

     }
 }
];

我希望这能帮到您。

于 2013-06-06T10:25:40.783 回答