2016-12-09 1 views
1

학생이라는 객체 배열이 있습니다. 모든 학생에는 이라는 제목의 다른 배열이 있습니다. 대상은입니다. 이제 이라는 주제의 학생 배열을 필터링하려고합니다. 주제 이름. 오브젝트의 예는 다음과 같습니다 :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 

subject 이름.

나는 내 질문에 대답하기를 바랍니다.

답변

6

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

작동합니다 (Y). 감사합니다 –

+0

@AzeemAkram Welcome mate :) –

관련 문제