加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 获取由核心数据中的一对多关系构成的NSSet中属性

发布时间:2020-12-16 09:25:04 所属栏目:百科 来源:网络整理
导读:我在Core Data中设置了几个对象,其中一个是“Deck”,其中一个是“Card”. “卡片”有几个编号的关系,包括“id”. “Deck”与卡片有一对多的关系. 在甲板中找到具有最小值的某些编号属性的最佳方法是什么,例如id? 显然我可以得到这样的卡片列表: NSSet *car
我在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]];

将给出其ID属性等于deck.cards中最小值的NSSet卡.

有关详细信息,请参阅“键值编程指南”的Set and Array Operators说明.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读