CoreData聚合一对多关系

问题描述 投票:0回答:1

我有一个具有以下“体系结构”的CoreData模型:我有一个以Session作为属性的system_version实体。然后,我有一个带有属性Views (Session<-->>Views)delta_time实体。最后,我有一个带有"UI_Elements" (Views <-->> UI_Elements)属性的variable_value实体。我想根据特定的variable_value值过滤内容,然后显示按delta_time分组的system_version平均值。

enter image description here

我已经尝试了以下实现:

            var expressionDescriptions = [AnyObject]()

            expressionDescriptions.append("views_ui.sessions.systemVersion" as AnyObject)
            let expressionDescription = NSExpressionDescription()
            expressionDescription.name = "Average Time"


            expressionDescription.expression = NSExpression(format: "@avg.views_ui.delta_time_number")
            expressionDescription.expressionResultType = .integer32AttributeType
            expressionDescriptions.append(expressionDescription)



            let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "UI_Elements")
            fetch.predicate = requete
            fetch.propertiesToGroupBy = ["views_ui.sessions.systemVersion"]

            fetch.resultType = .dictionaryResultType
            fetch.sortDescriptors = [NSSortDescriptor(key: "views_ui.sessions.systemVersion", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))]
            fetch.propertiesToFetch = expressionDescriptions

            var results:[[String:AnyObject]]?

不幸的是,我收到以下错误:

CoreData:错误:SQLCore dispatchRequest:异常处理请求:,无效的密钥路径(请求对于仅toOne键路径上的聚合操作):用户信息为(null)的views_ui.delta_time_number,]

我有一个带有以下“体系结构”的CoreData模型:我有一个以system_version为属性的Session实体。然后我有一个Views(Session> Views)实体,其delta_time和...

swift core-data one-to-many
1个回答
1
投票

我终于设法通过如下修改代码来获得期望的结果:

© www.soinside.com 2019 - 2024. All rights reserved.