gpt4 book ai didi

iphone - NSFetchedResultsController 部分本地化排序

转载 作者:行者123 更新时间:2023-12-03 18:40:04 27 4
gpt4 key购买 nike

我如何使用带有翻译后的排序键和sectionKeyPath的NSFetchedResultsController?

问题:我在数据库中的属性“type”中有 ID,例如 typeA、typeB、typeC...,而不是直接的值,因为它应该本地化。在英语中,typeA=Bird,typeB=Cat,typeC=Dog,在德语中,则为 Vogel、Katze、Hund。

使用带有排序键和“类型”上的sectionKeyPath的NSFetchedResultController,我收到订单和部分-A型-B型- 类型C

接下来我翻译显示,一切都很好用英语:- 鸟- 猫- 狗

现在我切换到德语并收到错误的排序顺序——沃格尔- 卡茨- 亨德

因为它仍然按 typeA、typeB、typeC 排序

所以我正在寻找一种本地化 NSFetchedResultsController 排序的方法。

我尝试了 transient 属性方法,但这对于排序键不起作用,因为排序键需要位于实体中。

我没有其他想法。但我不敢相信不可能在本地化所需的派生属性上使用 NSFetchedResultsController ?

有类似Using custom sections with NSFetchedResultsController?这样的相关讨论但不同之处在于自定义节名称和排序键可能具有相同的顺序。就我而言不是这样,这是主要的区别。

最后,我猜想,我需要对派生属性上必要的 NSSortDescriptor 进行排序。此排序顺序也适用于sectionKeyPath。

感谢您的任何提示。

最佳答案

好吧,这不是一个很好的解决方案,但最终它起作用了(因为我定义了一组有限的记录,大约 100 条):

初始化应用程序时:

  • 我在托管对象中创建了一个“order by”属性。
    • 我检查本地化(以及排序顺序)自上次以来是否发生了变化。如果是这样:
    • 我获取所有记录并按本地化名称在 NSArray 中对它们进行排序。
    • 我写回存储中的记录

出于性能原因,我仅根据 NSPredicate 获取记录并对其进行排序。

我可以使用所有现有代码,使用“order by”作为排序键和部分键路径。

我知道我可以使用有序数组作为 TableView 的数据源,但我想保留现有代码并使用 NSFetchedResultsController 的方法。

为了方便起见,我可以完全控制排序,这将满足我将来的需求,因为我计划构建更复杂的排序顺序(基于位置、顶部记录的使用概率更高等)。 )

但这不是一个优雅的解决方案。

关于iphone - NSFetchedResultsController 部分本地化排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com