按Objective-C中的一个属性对自定义对象的NSSet进行排序

时间:2019-03-01 22:51:31

标签: ios nsarray nsfetchrequest nsset

我正在尝试按属性或属性的最常用值对数组进行排序。 This question和其他人建议您可以使用NSSet有效地完成此操作。但是,它仅按最常见的字符串排序,而不是自定义对象中的属性值。我将如何获得以下内容以返回最受欢迎的标题?

NSArray<Articles*> *results = [self.managedObjectContext executeFetchRequest:fetchRequest
                                                                error:&error];

    NSCountedSet* mySet = [[NSCountedSet alloc] initWithArray:results];
    Articles* mostRead = nil;
    NSUInteger highestCount = 0;

                for(Articles* article in results) {
                    NSUInteger count = [mySet countForObject:article.title];
                    if(count > highestCount) {
                        highestCount = count;
                        mostRead = article;
                    }
                }

上面的代码没有返回值,因为countForObject:article.title似乎无法识别。

1 个答案:

答案 0 :(得分:0)

您的mySet(如果设置为Articles *)。然后,您计算article. title的{​​{1}}。尝试更改NSString *的设置应该可以。

NSString *