gpt4 book ai didi

ios - 在带有 NSFetchRequest 的 select 语句中使用 Case

转载 作者:行者123 更新时间:2023-11-29 03:52:41 24 4
gpt4 key购买 nike

有没有办法使用NSFetchRequestSQL SELECT中使用CASE语句?

        @[
[NSString stringWithFormat:@"CASE %@ WHEN %@ THEN 1 WHEN %@ THEN 2 WHEN %@ THEN 3 WHEN %@ THEN 4 ELSE 0 END",
COLUMN_ENUM,
INTEGER_ENUM1,
INTEGER_ENUM2,
INTEGER_ENUM3,
INTEGER_ENUM4]
]

其中枚举包含列名和整数。

我需要这个,因为一列包含字符串,但我必须按此列排序(不是按字母顺序),并且我不能将 SortDescriptor 与比较器一起使用(NSFetechedResultsController 不支持)。

知道如何实现这一目标吗?

最佳答案

(基于 SQL 的)核心数据获取请求的排序描述符只能使用实体的持久属性以及一组有限的排序选择器(比较:caseInsensitiveCompare:localizedCompare:localizedCaseInsensitiveCompare:localizedStandardCompare:)。您不能使用基于 Objective-C 的比较器或任意SQL 表达式。

localizedStandardCompare: 如果您的字符串包含应排序的数字,则非常有用根据它们的数值。

(参见"Fetch Predicates and Sort Descriptors"有关详细信息,请参阅“核心数据编程指南”。)

因此,如果受支持的排序选择器均无法提供您想要的排序,您将必须添加一个附加属性来排序对象。

关于ios - 在带有 NSFetchRequest 的 select 语句中使用 Case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913191/

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