gpt4 book ai didi

objective-c - 从核心数据中的一对多关系中获取 NSSet 中属性的最小值

转载 作者:搜寻专家 更新时间:2023-10-30 19:59:19 24 4
gpt4 key购买 nike

我在 Core Data 中设置了几个对象,其中一个是“Deck”,另一个是“Card”。 “卡片”有几个编号关系,包括“id”。 “Deck”与卡片是一对多的关系。

在卡片组中找到某些编号属性(例如 id)具有最小值的卡片的最佳方法是什么?

显然我可以获得这样的卡片列表:

NSSet *cardList = self.cards;

我想我可以构建一个表达式来获得这样的最小值:

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"id"];
NSExpression *minExpression = [NSExpression expressionForFunction:@"min:"
arguments:[NSArray arrayWithObject:keyPathExpression]];

但我不太清楚如何使用该表达式来提取具有最小 id 值(或仅具有最小 id 值)的卡片。

最佳答案

您可以使用键值编码来做到这一点:

//assuming Card has an Id property which is a number
NSNumber *minId = [deck valueForKeyPath:@"cards.@min.Id"];

NSSet *minCards = [[deck cards] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"Id==%@", minId]];

将给出卡片的 NSSet,其 Id 属性等于 deck.cards 中的最小值。

请参阅键值编程指南对 Set and Array Operators 的描述了解更多信息。

关于objective-c - 从核心数据中的一对多关系中获取 NSSet 中属性的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627447/

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