如何忽略NSFetchedResultsController中的sortDescriptor

时间:2012-05-15 14:13:14

标签: iphone ios nsfetchedresultscontroller nssortdescriptor

我正在使用NSFetchedResultsController来检索UITableView的数据。 但问题是我必须将sortDescriptorNSFetchedResultsController一起使用。 我不想对数据进行排序,我希望将表中的数据显示为表中的数据。

有没有办法处理这项任务?

2 个答案:

答案 0 :(得分:6)

如果您希望按照插入顺序对数据进行排序,则需要一个字段来记录此顺序。

执行此操作的一种好方法是向对象添加creationDate属性,然后使用awakeFromInsert方法自动记录插入时间。

- (void)awakeFromInsert
{
    [super awakeFromInsert];
    [self setValue:[NSDate date] forKey:@"creationDate"];
}

现在,当您想按插入顺序对它们进行排序时,您已经完成了设置。

答案 1 :(得分:1)

谢谢你的回答。我添加了另一个名为排序编号的属性并以这种方式实现:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
chapterSN = [userDefaults objectForKey:@"sortingNumber"];
if (chapterSN == Nil) {
    NSInteger chapterSortingValue = 0;
    chapterSN = [NSNumber numberWithInteger:chapterSortingValue];
    [userDefaults setValue:chapterSN forKey:@"sortingNumber"];
 }
 else {
     NSInteger chapterSortingValue = [chapterSN integerValue];
     chapterSortingValue = chapterSortingValue+1;
     chapterSN = [NSNumber numberWithInteger:chapterSortingValue];
     [userDefaults setValue:chapterSN forKey:@"sortingNumber"];
 }