0
나는 - (void)textViewDidChange:(UITextView *)textView
델리게이트를 호출하고 코드 안에 내 parse.com 백엔드의 데이터를 가져옵니다. 하지만 99/100 시도는 빈 배열을 얻는 경우가 드물지만 정확한 데이터를 돌려주고 tableview에 나열합니다. 코드를 재정의하는 가장 좋은 방법은 무엇입니까? 다른 대의원을 사용 하시겠습니까?UITextView textViewDidChange-UISearch와 같은 백엔드에서 데이터 가져 오기
- (void)textViewDidChange:(UITextView *)textView
{
[searchAskerArray removeAllObjects];
[searchResultArray removeAllObjects];
NSString *inComingText = _txtQuestion.text;
if(![inComingText isEqualToString:@" "] && inComingText.length>4 && [[inComingText componentsSeparatedByString:@" "] count]>0)
{
PFQuery *searchQuery = [PFQuery queryWithClassName:@"Questions"];
_txtQuestion.text = inComingText;
[searchQuery includeKey:@"user"];
[searchQuery whereKey:@"question" containsString:_txtQuestion.text];
[searchQuery findObjectsInBackgroundWithBlock:^(NSArray *quesArray, NSError *error)
{
for (int i = 0; i <quesArray.count; i++)
{
NSString *ques = [quesArray[i] objectForKey:@"question"];
PFUser *asker = [quesArray[i] objectForKey:@"user"];
[searchResultArray addObject:ques];
[searchAskerArray addObject:asker.username];
}
if (searchResultArray!=nil && searchAskerArray.count >0)
{
finalQuesArray = searchResultArray;
finalAskerArray = searchAskerArray;
[_similarTable reloadData];
}
}];
}}
사용자가 빠르게 입력 할 때이 대리인은 한 번에 많은 이벤트를 발생시킵니다. 제안 사항이 있습니까?
또는 가져 오기가 완료되면 테이블보기를 다시로드하는 코드를 어떻게 다시 정의합니까? – KhanXc
검색 버튼을 누를 때 parse.com에서 데이터를 가져 오기 시작하면 검색 결과가 tableview에로드 될 때까지 UI를 차단하는 UIActivityIndicator를 표시 할 수 있습니다. – zaheer
나는 당신의 제안이 문맥에서 나간다 그래야 수색 막대 개념 같이 싶다! 사용자가 타이핑을 시작하자마자 결과를 조회하십시오! – KhanXc