我正在尝试按顺序返回包含数字的字符串,但是在某些地方我当前的排序描述符失败(请参见下面的代码)。我试图按天数、周数和类别返回我的数据。这是一个例子:
第 1 天,第 1 周 第 2 天,第 1 周
目前,排序在第 2 周出现故障:
第 10 天,第 2 周 第 11 天,第 2 周 第 8 天,第 2 周 第 9 天第 2 周
我尝试将localizedCompare 与我的最后一个排序描述符一起使用,但这没有帮助。在此先感谢您的帮助!
- (NSFetchedResultsController *)fetchedResultsController {
if (!fetchedResultsController ) {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Workouts" inManagedObjectContext:[Utils appDelegate].managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"w_category" ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"weekNo"
ascending:YES];
Workouts *changeSort;
NSString *sortingChoice;
if ([changeSort.w_scoring isEqualToString:@"scoring"]){
sortingChoice = @"w_programDay";
} else if (![changeSort.w_scoring isEqualToString:@"scoring"]){
sortingChoice = @"w_name";
}
NSSortDescriptor *sortDescriptor3 =[[NSSortDescriptor alloc] initWithKey:[NSString stringWithFormat:@"%@", sortingChoice] ascending: YES selector: @selector(localizedCompare:)];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, sortDescriptor2,sortDescriptor3, nil];
[request setSortDescriptors:sortDescriptors];
NSFetchedResultsController *newController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:managedObjectContext sectionNameKeyPath:@"w_category" cacheName:nil];
newController.delegate = self;
self.fetchedResultsController = newController;
}
return fetchedResultsController;
}