核心数据组BY

时间:2013-06-19 09:18:45

标签: ios core-data ios6 group-by nsfetchrequest

尝试在Core Data中执行简单的GROUP BY,但仍然没有成功。起点在这里(Matt Connolly's Blog post of about a year ago并且看起来也是如此。

我只是想通过一个属性进行分组:

    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

0 个答案:

没有答案