0

我正在使用 Parse.com 作为我正在开发的应用程序的后端。Parse.com 无法通过 PFQuery 返回唯一结果。我正在做的是检索用户所有高尔夫球场的 PFQuery,然后尝试确定用户玩过的独特课程。独特的课程应具有以下属性的独特组合:

  • 课程名
  • Course Tee(开球颜色)
  • 课程评分
  • 球场坡度

这是我的代码:

 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 个特征的一组独特课程的任何想法?

4

1 回答 1

3

您的结果看起来好像PFObject没有实现isEqual:,因此从中获取默认实现NSObject- 这是身份(一个对象等于它自己,没有别的)。

谷歌发现了这一点,它支持该理论。

您可以采用与该参考中相同的方法:使用类别添加isEqual:and hash,使您的方法比较四个属性是否相等。

如果您遇到困难,请isEqual:按照hash上述参考资料中的 Mike Ash 链接进行操作。

HTH。

于 2013-11-13T02:16:26.997 回答