0
我可以將鍵值收集函數與NSExpression
結合使用嗎?我使用它與CoreData來從我的託管對象類中獲取最大值:它的工作效果很好。將鍵值函數與NSExpression結合使用
現在我有這個其他的託管對象類,它包含一個NSSet
。我想查找NSSet
中@sum值的最大值。
因此,例如,我有10個託管對象,每個託管對象都有一個NSSet值。我想@sum每個集合中的值,然後找到10個管理對象中最大的一個。
我通常會得到使用[object valueForKeyPath:@"[email protected]"]
的總和 - 這很好。
我想結合,做somethinge,如:
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"[email protected]"];
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'
集合的總和是單個值,而不是集合。 'max'只對一個系列有意義。你想達到什麼目的? –
是的,我的帖子不太清楚:我添加了這個:「例如,我有10個託管對象,每個託管對象都有一個NSSet值,我想在每組中設置@sum值,然後找到最大值在10個管理對象中。「 – bandejapaisa
此外,錯誤實際上是:終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:'無效的keypath元素(不是關係或屬性):@sum'。所以我然後嘗試添加一個方法到我的託管對象封裝這個調用: - (NSNumber *)weekTotal { return [self valueForKeyPath:@「usageMetrics。@ sum.value」]; } ...並且它抱怨在管理對象上找不到weekTotal(可能是因爲它是暫時的)。 – bandejapaisa