gpt4 book ai didi

ios - 将键值函数与 NSExpression 结合起来

转载 作者:行者123 更新时间:2023-11-29 04:59:38 26 4
gpt4 key购买 nike

我可以将键值收集函数与 NSExpression 结合起来吗?我将它与 CoreData 一起使用来从我的托管对象类中获取值的 max: ,并且效果很好。

现在我有了另一个托管对象类,其中包含一个 NSSet。我想找到 NSSet 中值的 @sum 的 max:。

例如,我有 10 个托管对象,每个对象都有一个 NSSet 值。我想对每组中的值进行@sum,然后找到 10 个托管对象中最大的一个。

我通常会使用 [object valueForKeyPath:@"usageMetrics.@sum.value"] 获得总和 - 效果很好。

我想结合并做一些类似的事情:

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"usageMetrics.@sum.value"];
NSExpression *valueSumExpression = [NSExpression expressionForFunction:@"max:" arguments:[NSArray arrayWithObject:keyPathExpression]];

好像没用

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid keypath element (not a relationship or attribute): @sum'

最佳答案

我这样做:

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"usageMetrics.value"]; 
NSExpression *valueSumExpression = [NSExpression expressionForFunction:@"sum:" arguments:[NSArray arrayWithObject:keyPathExpression]];

它返回一个包含 12 个结果的 NSArray(这是它找到的托管对象的数量),并且对这些值进行了求和。

然后我会这样做:

NSDecimalNumber *maxValue = [results valueForKeyPath:@"@max.maxValue"]; (maxValue being the name of the NSExpressionDescription)

有效!

我想知道是否可以将 sum:max: 堆叠到 NSExpression 中。

关于ios - 将键值函数与 NSExpression 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264238/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com