私のアプリケーションでUISearchBarを使用していますが、いくつかのjsonメソッドを呼び出すと問題が発生します。searchBarSearchButtonClicked
は、他のメソッドがデータのロードを完了するまでキーボードを辞退していないようです。代わりに、UIAlertViewとUIButtonsを使ってsearchBarSearchButtonClicked
関数を置き換えてみましたが、文字通りフリーズして「押し下げられた」状態に留まっているようです。 [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
がデバイスのステータスバーにアクティビティインジケータを表示しない理由がこれに該当するかどうかも疑問に思っていました。jsonや他のデータがロードされているときに、UIButton/keyboard/UIAlertViewをビューからどのように削除しますか?
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
self.args = searchBar.text;
[self grabData];
[self fillVars];
[searchBar resignFirstResponder];
[self.tableView reloadData];
}
[self grabData]
私はJSONデータを取得し、[self fillVars]
だけで、後に使用されているいくつかのことを満たす場所です。
-(void)grabData{
self.args = [self.args stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
urlString = [NSString stringWithFormat:@"%@%@?key=%@&q=%@",baseUrl,func,apiKey,args];
url = [NSURL URLWithString:urlString];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
self.matches = [json objectForKey:@"matches"];
[UIApplication sharedApplication].networkActivityIndicatorVisible=YES;
}
私はGCDについてよく知っていますが、まだアプリケーションで使用していません。私は少しスレッドを見上げる必要がありますが、私は今それを試しに行くよ! – erran
よろしくお願いします!できるだけ早く学習することで、より豊かなユーザーエクスペリエンスやより高速なアプリを作成することができます。ハッピーコーディング:) –