ios - 尝试按一个属性分组并获取核心数据中每组中的实体数

标签 ios swift core-data count group-by

我有一个实体 PackageHistories。我想按 myStore 筛选并按 myShoppingItem 分组,并获取每个组的计数。

我的获取请求编码如下:

        let historyRequest = NSFetchRequest(entityName: "PackageHistories")
        let storePredicate = NSComparisonPredicate(leftExpression: NSExpression(forKeyPath: "myStore"), rightExpression: NSExpression(forConstantValue: dataStack.currentReceipt.myStore), modifier: NSComparisonPredicateModifier.DirectPredicateModifier, type: NSPredicateOperatorType.EqualToPredicateOperatorType, options: NSComparisonPredicateOptions.NormalizedPredicateOption)
        historyRequest.predicate = storePredicate
        historyRequest.resultType = NSFetchRequestResultType.DictionaryResultType

        let itemDescription = NSExpressionDescription()
        itemDescription.name = "ShoppingItems"
        itemDescription.expression = NSExpression(forKeyPath: "myShoppingItem")
        itemDescription.expressionResultType = .ObjectIDAttributeType

        let countDescription = NSExpressionDescription()
        countDescription.name = "Popularity"
        countDescription.expression = NSExpression(format: "@count.myShoppingItem")
        countDescription.expressionResultType = .Integer32AttributeType

        historyRequest.propertiesToGroupBy = ["myShoppingItem"]
        historyRequest.propertiesToFetch = [itemDescription, countDescription]
        historyRequest.sortDescriptors = [NSSortDescriptor(key: "Popularity", ascending: false)]

我的问题是我收到 fatal error :由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法为表达式生成选择目标 token :@count.myShoppingItem”

最近几个版本是否发生了一些变化,以至于 countDescription.expression = NSExpression(format: "@count.myShoppingItem") 不再是正确的格式?我正在使用 Xcode 7.2 和 iOS 9。

更新:

countDescription.expression = NSExpression(forFunction: "count:", arguments: [itemDescription.expression!])
countDescription.expressionResultType = .Integer32AttributeType

不会崩溃,但它确实给了我官样文章。它不返回整数,它返回某种 NSManagedObjectID。

最佳答案

您的代码看起来没问题。但它不应该是 myShoppingItem.@count 吗?

关于ios - 尝试按一个属性分组并获取核心数据中每组中的实体数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844950/

相关文章:

ios - 在 Objective c 中设计内存游戏的任何建议

ios - 带有 uitextview 的可拖动 uiview

ios - 为什么我不能直接设置一些类属性?

swift - 如何从 TableView 中删除特定的 coreData 对象

cocoa - 如何处理子上下文中的保存,但对象已在父上下文中删除?

ios - 足以从 super View 中删除 View 吗?

ios - PHAssetChangeRequest 在创建视频 Assets 时总是返回 nil

swift - Xcode 8.0 CBCentralManager 问题

ios - swift : Segue Taped menu item's name on navigation bar title with SWRevealViewController

iphone - 将部分 mySQL DB 从网站转换为 iOS 上的 CoreData/SQLite