バックグラウンドで呼び出したいこのメソッドがあると想像してください。
- (void)loadView
{
[super loadView];
//Make a button which will fire the "buttonClicked" method
//Make my own uitableview.
//Fire method: "theBackGroundMethod" in the background.
}
曖昧で申し訳ありませんが、できる限り明確にしようと思います。以下は私がやりたいことです。ビューがありますが、このボタンと空の UITableView があります。次に、BackGroundMethod でバックグラウンドを実行したいのですが、実行中にボタンをクリックして、UITableView にデータを送信する buttonClicked メソッドを起動できるようにしたいと考えています。
次のことを試してみましたが、否定的な結果が得られました。
[self performSelectorInBackground:@selector(theBackGroundMethod) withObject:nil];
これによりBackGroundMethodが開始されますが、サーバーから要求したデータはロードされません。
[self performSelectorOnMainThread:@selector(theBackGroundMethod) withObject:nil waitUntilDone:NO];
これによりBackGroundMethodが開始されますが、何らかの理由でボタンをクリックすることはできません。ボタンをクリックすることはできますが、メソッドがクリックを起動している間に行うすべてのアクションはその背後のキューに入れられるため、backgroundmethodがボタンを押したx回が処理されます。
上記の performSelector-functions の使用をブロックする可能性のあるものと、それらを解決する方法を知っている人はいますか? または、全体的な(おそらくより良い)アイデアがあります..?