我正在使用带有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];
我很感谢能解决这个问题。
答案 0 :(得分:0)
原来插入部分完全正常,但删除时我没有更新索引,导致索引间隙。