【发布时间】:2019-10-09 13:44:33
【问题描述】:
我有以下实体和关系:
我想做一个计算: 我想获取特定类别的所有收据的金额并将它们相加。
例如: 我想检索“餐厅”类别的所有收据的总金额
如何使用 Swift 4.2 做到这一点?
【问题讨论】:
标签: swift xcode core-data swift4.2
我有以下实体和关系:
我想做一个计算: 我想获取特定类别的所有收据的金额并将它们相加。
例如: 我想检索“餐厅”类别的所有收据的总金额
如何使用 Swift 4.2 做到这一点?
【问题讨论】:
标签: swift xcode core-data swift4.2
例如,简单地获取一个字典数组,获取值并将它们相加
let request : NSFetchRequest<NSDictionary> = NSFetchRequest(entityName: "Receipt")
request.resultType = .dictionaryResultType
request.propertiesToFetch = ["amount"]
request.predicate = NSPredicate(format: "toCategory.category == %@", "Restaurant")
do {
let objects = try managedObjectContext.fetch(request) as! [[String:Int]]
let sum = objects.compactMap{$0["amount"]}.reduce(0, +)
} catch { print(error) }
【讨论】:
managedObjectContext是Core Data栈的NSManagedObjectContext实例,try行应该被包裹在do - catch块中,整个代码必须在方法内..
NSManagedObjectContext 实例。它通常在 AppDelegate 中,但可以在任何地方。