You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于NSNumber变量结合SortDescriptor使用@FetchRequest

解决Core Data中NSNumber类型属性的排序问题

不需要修改@NSManaged标记的year属性类型,Core Data原生支持对NSNumber类型的持久化属性进行排序,直接针对原key path创建SortDescriptor即可:

@FetchRequest(sortDescriptors: [
    SortDescriptor(\.artist),
    SortDescriptor(\.year) // 直接使用NSNumber?类型的year属性
])
private var items: FetchedResults<YourEntity>

如果遇到Swift类型推断报错,可以显式指定类型:

@FetchRequest(sortDescriptors: [
    SortDescriptor(\.artist),
    SortDescriptor(\YourEntity.year) as SortDescriptor<YourEntity>
])
private var items: FetchedResults<YourEntity>

若需要按年份数值调整排序顺序,直接指定order参数:

SortDescriptor(\.year, order: .reverse) // 按年份降序排列

注意:Core Data的排序依赖持久化存储中的属性,计算属性不会被Core Data识别,因此不能用于@FetchRequest的排序规则,必须使用@NSManaged标记的实体属性。

内容的提问来源于stack exchange,提问作者Germán

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:03:12