JSONデータをフェッチしてデコードしようとしていますが、同時にUIActivityIndicator
and UILabel
(@ "searching ...")を表示するビューを再表示して、アプリが検索していることをユーザーに知らせます。
これがどのように機能するかは次のとおりです。
- ユーザーが「検索ボタン」を押す
IBAction
メソッドは、検索ビューを再表示し、データを同時にフェッチしてデコードします (これらは一緒にではなく、個別に行うことができます)。[self performSegueWithIdentifier:]
検索が完了した後に使用して、新しいビューをスタックにプッシュします。
私はdispatch_queueを使用してみましたが、それを行うと、他のコードを完全にバイパスせずに新しいビューをスタックにプッシュすることはできません(少なくとも私が行っていた方法)。を使用するように言われNSConnection
ましたが、API を調べたところ、それを使用してこれを達成する方法がわかりません。
dispatch_queue_t myQueue = dispatch_queue_create("myQueue", NULL);
dispatch_async(myQueue,
^{
//...URL Request, parse JSON, etc.
dispatch_async(dispatch_get_main_queue(),
^{
searchingView.hidden = NO;
[spinner startAnimating];
});
});
[self performSegueWithIdentifier:@"aSegue"];
この方法では、すべてのコードがスキップされ、すぐにセグエが実行されます。コードの残りの部分と一緒に dispatch_queue 内に配置すると、コードは実行されますが、セグエは実行されません。最後に、このメソッドを使用して、最初に検索を実行し、次にビューを表示します。私は反対が必要です。
どんな助けでも大歓迎です!