NSFetchedResultsController没有正确地将对象插入UITableView

时间:2015-03-28 03:34:19

标签: ios objective-c uitableview nsfetchedresultscontroller nsfetchrequest

我正在使用带有NSFetchedResultsController的UITableView。 fetch有一些谓词,一切正常。所有对象都有一个索引,通过它可以对它们进行排序。 插入对象时,此索引设置正确,但有时对象出现在错误的索引路径中。但是,当我离开视图控制器并返回时,顺序是正确的。我尝试刷新controllerDidChangeContent:中的表格视图但没有效果。

这是我的获取请求:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    // Edit the entity name as appropriate.
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"NoteContent" inManagedObjectContext:self.managedObjectContext];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"note IN %@", self.container.notes];
    [fetchRequest setPredicate:predicate];
    [fetchRequest setEntity:entity];

    // Set the batch size to a suitable number.
    [fetchRequest setFetchBatchSize:20];

    // Edit the sort key as appropriate.
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"note.creation.description" ascending:NO];
    NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"index" ascending:YES];
    NSArray *sortDescriptors = @[sortDescriptor, sortDescriptor2];
    [fetchRequest setSortDescriptors:sortDescriptors];

我很感谢能解决这个问题。

1 个答案:

答案 0 :(得分:0)

原来插入部分完全正常,但删除时我没有更新索引,导致索引间隙。