我正在使用Parse.com作为我正在开发的应用程序的后端。 Parse.com无法通过PFQuery返回唯一结果。我正在做的是检索用户的所有高尔夫轮次的PFQuery,然后尝试确定用户已经玩过的独特课程。独特的课程应具有以下属性的独特组合:
这是我的代码:
PFQuery *courseQuery = [PFQuery queryWithClassName:@"Rounds"];
[courseQuery selectKeys:@[@"roundUser",@"roundCourse",@"roundTee", @"roundRating",@"roundSlope",]];
[courseQuery whereKey:@"roundUser" equalTo:[PFUser currentUser].username];
[courseQuery findObjectsInBackgroundWithBlock:^(NSArray *courseObjects,NSError *error){
if(!error)
{
NSMutableArray* coursesFromParseNonUnique=[courseObjects mutableCopy];
NSMutableArray *coursesFromParseUnique=[[NSMutableArray alloc]init];
int x;
for (x=1;x<=courseObjects.count;x++)
{
NSObject *currentObject = [coursesFromParseNonUnique lastObject];
NSLog(@"Object %d : %@",x,currentObject);
if (![coursesFromParseUnique containsObject:currentObject])
{
[coursesFromParseUnique addObject:currentObject];
}
[coursesFromParseNonUnique removeLastObject];
}
}
else NSLog(@"failed");
}
关于为什么没有根据上述4个特征返回一套独特课程的想法?
答案 0 :(得分:3)
您的结果看起来PFObject
未实现isEqual:
,因此从NSObject
获取默认实现 - 这是一个身份(一个对象等于它自己,没有别的)。
谷歌出现this,支持这一理论。
您可以采用与该引用相同的方法:使用类别添加isEqual:
和hash
,使您的方法比较四个属性的相等性。
如果你被困isEqual:
&amp; hash
按照上面参考文献中的Mike Ash链接。
HTH。