• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - NSSortDescriptor 在查看详细 View 并返回后按字母顺序重新排序单元格

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:37:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个或多或少基本的 Master Detail 应用程序。我关注了this tutorial为了熟悉 Core Data,现在我正在尝试在我的 Master TVC 上重新排序我的单元格。一切正常,包括成功重新排序我的单元格。但是,当我深入查看其中一个详细的 VC 时,我又回到了原始的按字母顺序排列的顺序。我相信这与教程中包含的 NSSortDescriptor "sortDescriptor"有关。我不确定如何删除它,或者如何赋予它不同的特性。任何帮助表示赞赏。下面是我的 NSFetchedResultsController 方法。

-(NSFetchedResultsController*) fetchedResultsController {

    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

    NSManagedObjectContext *context = [self managedObjectContext];

    NSEntityDescription *entity = [NSEntityDescription entityForName"Top" inManagedObjectContext:context];

    [fetchRequest setEntity:entity];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey"topName" ascending:YES];

    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    fetchRequest.sortDescriptors = sortDescriptors;

    _fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];

    _fetchedResultsController.delegate = self;

    return _fetchedResultsController;
}

编辑: 经过过去几天的大量研究,我意识到这更多是我的 moveRowAtIndexPath 方法的问题。有人对使用 Core Data 和重新排序单元格的能力有任何建议或建议吗?另外,这是否需要自定义 tableviewcell 类?



Best Answer-推荐答案


您的表格 View 是根据名称排序的。鉴于名称是固定的,如果您“手动”重新排序单元格然后返回表格 View ,则重新建立基于名称的排序。

为了得到你想要的,你需要在你的核心数据模型中添加一个叫做sortIndex的字段。然后,您使用基于 sortIndexsortDescriptor 对表进行排序;您可以将 sortIndex 初始化为创建顺序。当用户通过 UI 重新排序单元格时,您还将更改所有受影响的单元格/托管对象的 sortIndex。然后,由于 sortIndex 是 Core Data 模型的一部分,当用户结束并重新启动您的应用程序时,他们的首选排序将被重新建立。

有时,出于建模原因,您不想在某些托管对象中直接包含 sortIndex。例如,Person 有名字和姓氏,但没有 sortIndex(实际上)。您可以创建一个关联,也许是一个 DisplayPreferences 托管对象,在 Person 和一个 DisplayPreferences 之间具有一对一的映射,并且具有DisplayPreferences 中的 sortIndex

关于ios - NSSortDescriptor 在查看详细 View 并返回后按字母顺序重新排序单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23460244/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap