1

尝试在 Core Data 中做一个简单的 GROUP BY,但仍然没有成功。起点是这里(大约一年前的 Matt Connolly 的博客文章,并且也查看了所有内容。

我只是想按一个属性分组:

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    request.entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:context];

    NSAttributeDescription *chapterDesc = [request.entity.attributesByName objectForKey:@"chapter"];
    [request setPropertiesToFetch:@[chapterDesc]];
    [request setPropertiesToGroupBy:@[chapterDesc]];
    [request setResultType:NSDictionaryResultType];

    NSError *error = nil;
    NSArray *results = [context executeFetchRequest:request error:&error];
    // error handling

我没有收到任何错误,但没有结果(无)。使用-com.apple.CoreData.SQLDebug进行调试时,它会显示正确的 SQL 语句。(我知道 Core Data 不是 SQL,但语句是正确的......)。我很肯定数据库中存在数据(只需设置谓词 = nil返回所有条目)。

有没有人有任何想法(或从经验中知道)我的错误是什么?

更新

根据要求,Document.h 的数据模型:

@interface Document : NSManagedObject

@property (nonatomic, retain) NSNumber * chapter;
@property (nonatomic, retain) NSNumber * isDoctor;
@property (nonatomic, retain) NSNumber * section;

+ (Document *)createOrUpdateDocumentWithChapter:(NSNumber *)chapter section:(NSNumber *)section doctor:(BOOL)doctor inManagedObjectContext:(NSManagedObjectContext *)context;
+ (NSArray *)getDocumentsInManagedObjectContext:(NSManagedObjectContext *)context;

@end
4

0 回答 0