1

Webサービスを起動してデータを取得し、別のスレッドで解析した後、結果をコアデータに格納するviewControllerがあります。

データがたくさんあるので、解析に時間がかかり、ナビゲーションでviewControllerをポップすると、解析メソッドの実行が停止するかどうかわかりません。

途中で実行を停止すると、コアデータDBが破損するため、viewControllerオブジェクトを解放する前に、実行を停止するか、セレクターを実行します。

MyViewController *vc = [[MyViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc performSelectorInBackground:aSelector withObject:arg];
4

1 に答える 1

3

Webサーバーの相互作用を別のオブジェクトに移動することを検討してください。このオブジェクトは、リクエスト/レスポンスを処理し、結果をCoreDataに保存できます。このオブジェクトは、要求を処理するためのキューを持つグローバルオブジェクトである場合もあります。そうでない場合は、ViewControllerの割り当て解除中にリクエストのキャンセルを処理する必要があります。

ビューコントローラは、Core Dataへの変更をリッスンし、適切なアクションを実行できます。

于 2012-04-25T13:47:27.673 に答える