How do I filter this object array using NSPredicate filteredArrayUsingPredicate/predicateWithBlock?
클래스 Person
이 클래스의 각 객체가 배열 objPersonCell
에 저장됩니다 lastName
등 firstName
같은 몇 가지 특성을 가지고 내 모달 클래스입니다. 그리고 내 뷰 컨트롤러에서 내가 사용 UITableViewCell
에 표시하는 필드입니다 :NSPredicate를 사용하여이 개체 배열을 어떻게 필터링합니까?
// way similar to this
for(NSMutableArray *obj in self.objPersonCell){
lblFirstName.text = [(Person *)obj personType];
}
문제 : 검색, 나는 사용자가 입력 NSPredicate
를 사용하여 objPersonCell를 필터링하고 즉시 jQuery과의 데이터를 다시로드하여 변경 사항을 반영 할 . 이제 NSPredicate
을 어떻게 사용합니까? 내가 시도 무엇
은 다음과 같습니다 updateAsPerSearchTerm
내부
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *searchTerm = [textField.text stringByReplacingCharactersInRange:range withString:string];
[self updateAsPerSearchTerm: searchTerm];
return YES;
}
-(void)updateAsPerSearchTerm:(NSString *)searchTerm
{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self contains[cd] %@",searchTerm];
NSArray *sortedArray = [[(Person *)self.objPersonCell] filteredArrayUsingPredicate:predicate];
[self.objPersonCell removeAllObjects];
[self.objPersonCell addObjectsFromArray:sortedArray];
[self.tableView reloadData];
}
코드는 objPersonCell를 전달하는 잘못된 것입니다. 어떻게 설정해야합니까? 그리고 어떻게하면 predicateWithBlock
나를 도와 줄 수 있을까요?