我正在使用以下查询从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}"
)
答案 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]);
}
}
];
我希望这会对你有所帮助。