ios – 使用UITableView和NSOrderedSet进行核心数据排序

前端之家收集整理的这篇文章主要介绍了ios – 使用UITableView和NSOrderedSet进行核心数据排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用Core Data作为后备存储的UITableViewController中,需要执行哪些步骤来实现用户定义的排序?

我还需要回应-tableView:moveRowAtIndexPath:fromIndexPath:toIndexPath:还是表视图自动处理的模型重新排序?我可以检查核心数据模型文件中的“有序”复选框,并期望它将更改从表格视图传输到商店,还是要做更多的事情?我必须改变我的fetchedResultsController获取对象的方式(例如,添加一个排序描述符)?

解决方法

您不需要放弃NSFetchedResultsController或NSOrderedSet.如果你坚持使用NSOrderedSet,简单的方法是将一个方法添加到对象NSManagedObject子类中.所以,例如,如果你有一个对象Book与一组有序的章节,你可以添加一个方法到Chapters对象:
- (NSUInteger)indexInBookChapters
{
    NSUInteger index = [self.book.chapters indexOfObject:self];
    return index;
}

提示:将其添加到类别,以免CoreData自动生成代码被覆盖.

然后可以在NSFetchedResultsController的排序描述符中使用此方法

fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"indexInBookChapters" ascending:YES]];
原文链接:https://www.f2er.com/iOS/330639.html

猜你在找的iOS相关文章