包含另一个自定义对象数组的自定义对象数组上的 NSPredicate
NSPredicate on Array of Custom Object that contains another array of Custom Object
我有一个名为 Student 的对象数组。其中每个 Student 都有另一个名为 Subject 的对象数组。现在我想用 学科名称 过滤我的学生数组。对象示例如下:
@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 包含对象数组 "Subject"
@interface Subject : NSObject
@property (nonatomic, assign) NSInteger subjectId;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *languageMedium;
@property (nonatomic, strong) NSString *creditHours;
@end
我想要的是提供 "Subject Name" 并使用该主题名称过滤我的学生数组。
希望我能解决我的问题。
为此尝试使用 ANY
。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name = %@", subjectName];
NSArray *filterArray = [studentArray filteredArrayUsingPredicate:predicate];
如果您不想将确切的 subjectName 与主题匹配,您也可以使用 CONTAINS[c]
。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name CONTAINS[c] %@", subjectName];
我有一个名为 Student 的对象数组。其中每个 Student 都有另一个名为 Subject 的对象数组。现在我想用 学科名称 过滤我的学生数组。对象示例如下:
@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 包含对象数组 "Subject"
@interface Subject : NSObject
@property (nonatomic, assign) NSInteger subjectId;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *languageMedium;
@property (nonatomic, strong) NSString *creditHours;
@end
我想要的是提供 "Subject Name" 并使用该主题名称过滤我的学生数组。
希望我能解决我的问题。
为此尝试使用 ANY
。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name = %@", subjectName];
NSArray *filterArray = [studentArray filteredArrayUsingPredicate:predicate];
如果您不想将确切的 subjectName 与主题匹配,您也可以使用 CONTAINS[c]
。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY arraySubject.name CONTAINS[c] %@", subjectName];