从Parse.com类提取数据并进入NSArray

时间:2013-06-06 09:50:56

标签: ios objective-c nsarray parse-platform

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

我想要做的是从Rating rateObjects中提取NSArray对象。我该怎么做呢?

感谢您的帮助

 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}"
)

2 个答案:

答案 0 :(得分: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); }

你需要遍历你的数组来查看已经返回的所有评级对象,所以你可能会得到这样的结果:

{{1}}

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

答案 1 :(得分: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]);

     }
 }
];

我希望这会对你有所帮助。

相关问题