Iphone 在底部加载最近的消息,并放置“加载旧消息”按钮以在TableView上加载旧消息

Iphone 在底部加载最近的消息,并放置“加载旧消息”按钮以在TableView上加载旧消息,iphone,objective-c,ios,uitableview,nsfetchedresultscontroller,Iphone,Objective C,Ios,Uitableview,Nsfetchedresultscontroller,我需要按时间顺序(最晚在底部)显示消息,但需要显示最后20条消息,顶部应该有“加载旧消息”按钮 但是对于从核心数据获取,我们可以指定排序描述符,根据该描述符获取旧数据或新数据,问题是它按照指定的顺序进行排序 也就是说,如果我获取最近的消息,它会将该消息放在顶部而不是底部 有没有一种方法可以从最近到较旧进行搜索,但可以从较旧到最近进行显示(按时间顺序) 代码: NSSortDescriptor*sortDescriptor=[NSSortDescriptor sortDescriptor with

我需要按时间顺序(最晚在底部)显示消息,但需要显示最后20条消息,顶部应该有“加载旧消息”按钮

但是对于从核心数据获取,我们可以指定排序描述符,根据该描述符获取旧数据或新数据,问题是它按照指定的顺序进行排序

也就是说,如果我获取最近的消息,它会将该消息放在顶部而不是底部

有没有一种方法可以从最近到较旧进行搜索,但可以从较旧到最近进行显示(按时间顺序)

代码:
NSSortDescriptor*sortDescriptor=[NSSortDescriptor sortDescriptor with key:@“date”升序:YES]按时间顺序提供,但从旧搜索到新搜索

NSSortDescriptor*sortDescriptor=[NSSortDescriptor sortDescriptor with key:@“date”升序:否]按相反的时间顺序提供,但从最近到较旧进行搜索

我需要按时间顺序进行搜索,根据时间戳从最近到更老

更多代码:

-(void) loadMoreContent{ // to load older messages
    numberOfCells += 10; //number of rows
    int tempNumofCells=(signed)[self.group.messages count]; // total number of messages
    if (tempNumofCells-numberOfCells >=0) { // number of cells that we are showing is lesser
        ;
    }
    else numberOfCells = tempNumofCells;

    //--making a performFetch Request to fill up above cells--
    NSError* error;
    if (![self.fetchedResultsController performFetch:&error]) {
        exit(-1); // Fail
    }
}

- (NSFetchedResultsController *)fetchedResultsController {
    if (_fetchedResultsController != nil) {
        //change the fetchRequest (fix for a bug result of constant fetched objects from fetchedController)
       if (((signed)[self.group.messages count] - numberOfCells) > 0) {
            [_fetchedResultsController.fetchRequest setFetchOffset:[self.group.messages count] - numberOfCells];
        }
        else  [_fetchedResultsController.fetchRequest setFetchOffset:0];

        return _fetchedResultsController;
    }
    .
    .
    .
  }

“setFetchOffset”之所以有效,是因为我告诉fetchedController从指定的索引(在loadMoreContent()中设置)获取消息,表的行数同样由numberOfCells变量和fetchedController的fetchedResults决定


谢谢..

假设您从数据库获取数据,然后将其存储在模型中的一个数组中,那么您可以按照所需的日期顺序对该数组进行排序,并将其存储在模型中,以备tableview使用


或者在您的
单元格中,返回位于
索引行
位置的对象,而不是返回位于
位置的数组中的对象(arrayLength-indexRow)
,该数组将以相反方向返回该对象。

也许您想发布一些代码来显示您正在执行的操作,所以我们不必猜测?我不会将元素放入任何数组中,以访问message fetchcontroller的objectAtIndexPath函数。如何获得所需的排序?很抱歉,由于fetchedResultsController返回按时间顺序或逆时间顺序排序的列表,因此我需要按时间顺序排列的消息列表,最新消息位于底部。我想这篇文章是解释性的。谢谢。填充TableView(如CellForRowatineXpath)的代码在哪里?