【发布时间】:2022-11-19 22:30:39
【问题描述】:
我正在开发一个跟踪用户支出和收入的 SwiftUI 预算管理应用程序。该应用程序使用 CoreData 来管理数据管理。托管对象将日期作为一个属性。
我使用下面的获取请求来获取数据
@SectionedFetchRequest(sectionIdentifier: \Expence.itemMonthYearShort, sortDescriptors: [SortDescriptor(\Expence.date, order: .forward)])
private var expences : SectionedFetchResults<String, Expence>
这将提供分组数据,例如 2021 年 9 月的费用
管理对象模型如下
extension Expence {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Expence> {
return NSFetchRequest<Expence>(entityName: "Expence")
}
@NSManaged public var amount: Double
@NSManaged public var date: Date
@NSManaged public var id: UUID?
@NSManaged public var type: Int16
@NSManaged public var title: String?
@NSManaged public var note: String?
@NSManaged public var category: Category?
public var wrappedNotes : String{
note ?? ""
}
public var wrappedTitle : String{
title ?? ""
}
@objc var itemMonthYear : String{
return date.formatted(.dateTime.month(.wide).year())
}
@objc var itemMonthYearShort : String{
return date.formatted(.dateTime.month(.abbreviated).year())
}
@objc var itemMonthYearDescending : String{
return date.formatted(.dateTime.month(.wide).year()) + " "
}
@objc var itemMonth : String{
return date.formatted(.dateTime.month(.abbreviated
))
}
@objc var itemYear : String{
return date.formatted(.dateTime.year())
}
}
extension Expence : Identifiable {
}
我想根据年份过滤数据。例如,我想显示特定年份的费用。我怎样才能为那个写谓词?
【问题讨论】:
标签: swift core-data predicate nsdatecomponents