나는 수천 명의 사용자 (~ 3,000)의 이름을 검색해야하는 구문 분석 IOS 응용 프로그램이 있습니다. 내가 할 수 있도록 내 검색 코드를 수정하려고하는데 도움이 필요합니다. 나는 모든 올바른 매개 변수없이 하단에있는 filterResults를 호출하기 때문에구문 분석에서 1000 개가 넘는 검색어로 검색
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView == self.tableView) {
return self.objects.count;
} else {
return self.searchResults.count;
}
}
-(void)filterResults:(NSString *)searchTerm :(int)limit :(int)skip {
[self.searchResults removeAllObjects];
PFQuery *query = [PFQuery queryWithClassName:@"_User"];
[query whereKey:@"isTeacher" equalTo:@"False"];
[query setLimit: limit];
[query setSkip: skip];
[[[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (objects.count == limit) {
[self performTeacherQueryWithLimit:limit andSkip:skip+limit];
}
else{
NSArray *results = [NSArray arrayWithArray:objects];
NSLog(@"%@", results);
NSLog(@"%lu", (unsigned long)results.count);
NSLog(@"results^");
[self.searchResults addObjectsFromArray:results];
NSPredicate *searchPredicate =
[NSPredicate predicateWithFormat:@"SELF.name contains[c] %@",searchTerm];
_searchResults = [NSMutableArray arrayWithArray:[results filteredArrayUsingPredicate:searchPredicate]];
[self.searchDisplayController.searchResultsTableView reloadData];
NSLog(@"%@", _searchResults);
NSLog(@"%lu", (unsigned long)_searchResults.count);
NSLog(@"search results^");
}
}];
]]
}
-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
[self filterResults:searchString];
return YES;
}
이 코드는 작동하지 않습니다하지만 난 중간으로 침입해서 지금은 붙어이기 때문에 즉 : 지금 검색 내 코드는 다음과 같습니다. setSkip을 사용해야한다는 것을 알고 있지만 내 검색을 위해 그 작업을 수행하는 방법을 잘 모르겠습니다. 어떤 도움이 굉장 할 것입니다! 감사!
감사합니다. 나는 매우 가깝지만 어떤 이유로 든 결과 중 일부가 돌아 오지 않는다. 우리가 채팅하면 어떨까요? 내 코드를 보여주고 싶다. 그것은 굉장 할 것이다! @danh –
채팅에 가면 행복하지만 의견을 입력하는 데 너무 오래 걸리는 경우가 있습니다. – danh
그게 사실이야. 알았어. 내 질문을 편집 할 수있어. 괜찮을 까? –