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

Posted

技术标签:

【中文标题】包含另一个自定义对象数组的自定义对象数组上的 NSPredicate【英文标题】:NSPredicate on Array of Custom Object that contains another array of Custom Object 【发布时间】:2016-12-09 09:48:27 【问题描述】:

我有一个名为 Student 的对象数组。每个 Student 都有另一个名为 Subject 的对象数组。现在我想用 Subject Name 过滤我的学生数组。对象示例如下:

@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

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

我希望我能解决我的问题。

【问题讨论】:

【参考方案1】:

尝试为此使用ANY

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

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

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

【讨论】:

@AzeemAkram 欢迎朋友 :)

以上是关于包含另一个自定义对象数组的自定义对象数组上的 NSPredicate的主要内容,如果未能解决你的问题,请参考以下文章

Meteor:带有对象数组的自定义 AutoForm

如何在 PHP/Eclipse 中对 foreach 循环中从数组中拉出的自定义对象进行智能感知?

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

从数组中删除自定义对象 (Swift)

过滤自定义对象的 NSMutable 数组

检查 Swift 数组上的重复属性