2016-12-09 19 views
1

Studentというオブジェクトの配列があります。各の学生にはという件名の別の配列があります。件名です。今私は科目の配列をフィルタリングしたいと思います。件名。オブジェクトの例は以下の通りです:NSPredicateはカスタムオブジェクトの別の配列を含むカスタムオブジェクトの配列にあります

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 

は「サブジェクト名」を提供し、それと学生の私の配列をフィルタリングすることであるオブジェクトの配列が含まれてい

@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 

件名。

私は私の質問をクリアすることを願っています。

答えて

6

これは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]; 
+0

これは機能します(Y)。ありがとう –

+0

@AzeemAkramようこそメイト:) –

関連する問題