gpt4 book ai didi

ios - 检索一对多关系中的所有 NSSet 元素值

转载 作者:行者123 更新时间:2023-11-28 21:51:33 26 4
gpt4 key购买 nike

如附图所示,我有一个一对多的关系。我想列出特定讲师教授的所有类(class)名称,到目前为止我提出的解决方案如下。

enter image description here

    NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Lecturer"];
NSMutableSet *courseList = [[NSMutableSet alloc] init];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == 'smith'"];
[request setPredicate:predicate];

NSError *error = nil;
NSArray *lecturers = [self.managedObjectContext executeFetchRequest:request
error:&error];
for (Lecturer *lecturer in lecturers)
{
NSSet *set = lecturer.courses;

for (Course *course in set)
{
[courseList addObject:course.title];
}
}

courseList 对象包含给定讲师教授的所有类(class)。是否有更好的方法来单独使用 nspredicates 而不是使用 2 个 for 循环?

提前致谢。

最佳答案

您可以直接获取 Course 对象,但指定一个不同的谓词,要求它们的 authorname.name 匹配:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Course"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"authorname.name == 'smith'"];
[request setPredicate:predicate];
NSError *error = nil;
NSArray *courseList = [self.managedObjectContext executeFetchRequest:request error:&error];

如果你想要一个只有标题的数组,你可以使用:

NSArray *courseTitles = [courseList valueForKeyPath:@"title"];

关于ios - 检索一对多关系中的所有 NSSet 元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28114556/

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