感谢更专业的用户,我实现了一种方法来对表视图部分中的核心数据对象进行排序。该部分内的排序方法与表视图的排序方法不同。最新版本由NSFetchedResultsController完成。但现在我不知道如何从排序的NSArray中获取值。 这是对一个部分内的核心数据对象进行排序的方法:
- (NSArray*)sortedSectionForIndex:(NSInteger)index
{
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"priority" ascending:YES];
id section = [[self fetchedResultsController] sections][index];
NSLog(@"INDEX********* = %ld", (long)index);
NSArray *objects = [section objects];
NSArray *sorted = [objects sortedArrayUsingDescriptors:@[sort]];
return sorted;
}
这是添加到cellForRowAtIndexPat方法的代码,用于从sortedSectionForIndex方法获取NSArray:
NSArray *sorted = [self sortedSectionForIndex:[indexPath section]];
id object = [sorted objectAtIndex:[indexPath row]];
NSLog(@"OBJECTV= %@",object);
现在,我需要知道如何将数组中的值显示为cell.textlabel
:
第二个问题是我不知道从数组中获取核心数据对象是否会改变其他方法处理它们的方式。我的意思是,在实现这种排序方法之前,当用户点击一行时,会显示所选对象的详细视图。现在从数组而不是从NSFetchedResultsController获取对象,我不确定它是否会像以前一样继续工作。
答案 0 :(得分:0)
我会更改行
id object = . . .
要
NSManagedObject *object = . . .
然后
cell.textLabel = [object valueForKey:@"todoName"];