gpt4 book ai didi

ios - TWICE相关实体的CoreData计数记录

转载 作者:行者123 更新时间:2023-11-28 22:35:13 24 4
gpt4 key购买 nike

我有三个实体:机构、类(class)、学生一个机构可以有很多类(class),一个类(class)只能有一个机构(1 - 很多)一个类(class)可以有很多学生,一个学生可以加入很多类(class)(很多 - 许多)。

统计一个机构的类(class)很简单,其关系名为“类(class)”:

int numberCourses = institution.course.count;

我的问题:

我如何计算机构中的学生人数?在实体类(class)中,我将“学生”与实体学生联系起来。如何从机构通过类(class)访问学生?

注意:一个学生可以成为许多类(class)的成员,因此他有可能成为许多机构的成员。

简单地说,模拟上面的代码行,我想要这个:

institution -> ALL courses -> student.count

谢谢帮忙!!C.

最佳答案

有两种不同的解决方案。你可以得到该机构所有学生的集合和数一数:

NSSet *students = [institution valueForKeyPath:@"courses.students"];
NSUInteger numberOfStudents = [students count];

(我对多对多关系使用了复数形式,我觉得这样更直观。)

或者您为与该机构相关的学生构建一个获取请求:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Student"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY courses.institution == %@", institution];
[request setPredicate:predicate];
NSUInteger numberOfStudents = [context countForFetchRequest:request error:&error];

第二种解决方案的优点是Student 对象和中间Course 对象不会加载到内存中。计算对象数量完成在 SQLite 级别。

关于ios - TWICE相关实体的CoreData计数记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16265669/

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