NSPREDICATE在包含另一个自定义对象数组的自定义对象的数组上



我有一个名为 student 的对象数组。其中每个 student 都有另一个称为主题的对象数组。现在,我想用主题名称过滤我的学生数组。对象的示例如下:

@interface Student : NSObject
@property (nonatomic, assign) NSInteger studentId;
@property (nonatomic, strong) NSString  *name;
@property (nonatomic, strong) NSString  *class;
@property (nonatomic, strong) NSString  *section;
@property (nonatomic, strong) NSArray   *arraySubject;
@end

其中 arraysubject 包含对象的数组"主题"

@interface Subject : NSObject
@property (nonatomic, assign) NSInteger subjectId;
@property (nonatomic, strong) NSString  *name;
@property (nonatomic, strong) NSString  *languageMedium;
@property (nonatomic, strong) NSString  *creditHours;
@end

我想要的是提供"主题名称",并用该主题名称过滤我的学生数组。

我希望我清除我的问题。

尝试使用ANY

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name = %@", subjectName];
NSArray *filterArray = [studentArray filteredArrayUsingPredicate:predicate];

如果您不想将确切的主题名与主题匹配,也可以使用CONTAINS[c]

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name CONTAINS[c] %@", subjectName];

最新更新