我试图通过“recordDate”将数据分成多个部分,然后对于每个部分,数据将按“elementName”升序排序。以下是当前代码(不工作):
NSManagedObjectContext *context = self.tankDatabase.managedObjectContext;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Log"];
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"recordDate" ascending:NO], [NSSortDescriptor sortDescriptorWithKey:@"elementName" ascending:YES selector:@selector(localizedStandardCompare:)], nil];
request.predicate = [NSPredicate predicateWithFormat:@"ownedBy = %@", self.tank];
self.controller = [[NSFetchedResultsController alloc]
initWithFetchRequest:request
managedObjectContext:context
sectionNameKeyPath:@"recordDate"
cacheName:nil];
self.controller.delegate = self;
NSError *error;
BOOL success = [self.controller performFetch:&error];
但是,当我尝试使用其他属性进行排序(例如:elementName ASC、value DESC 并按 elementName 对它们进行分组)时,它确实可以正常工作。请注意,recordDate 在数据模型中是“日期”类型,在类中是 NSDate。
此外,recordDate 包含需要将其分组到该详细信息的分钟和秒。
我试图在整个互联网上搜索类似的案例,但我没有找到任何可行的解决方案。我的代码中缺少什么?或者它只是一个苹果的错误?感谢您的时间和帮助。