メインスレッドから呼び出されたメソッド内からの呼び出しメソッド
-
11-12-2019 - |
質問
私はappdelegateからクラスメソッドを呼び出しました。
RankingAndSMProcess *process = [RankingAndSMProcess alloc];
[process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];
[process release];
.
このメソッドは他の方法を呼び出します。
@try {
[self GoForRankingProcess];
[self updateItemsForPeerindex];
[self updateItemsForKloat];
[self updateItemsForKred];
}
@catch (NSException *exception) {
NSLog(@"An Error has been occured:%@", exception);
}
@finally {
[items release];
[profile release];
}
.
RankingAndSmprocessのDorankingAndSsocialMediaProcessingメソッド内から呼び出されたすべてのメソッドは、バックグラウンドスレッド上のDorankingAndSocialMediaProcessingと同じ方法で呼び出す必要がありますか?またはここで別の潜在的な問題はありますか?
現在、新しいデータが収集されていないため、処理方法のいずれにも発生しているとは思わない。
追加するための呼び出しを変更する前に、バックグラウンドで実行されるすべてのメソッドとプロセス全体が期待どおりに機能しました。
解決
NSOPERATIONを作成し、この操作をNSOperationQueueに追加します。 これにより、メインスレッドと並行して新しいスレッドが作成され、メソッドも実行されます。
これはいくつかの便利なリンクです:
href="https://stackoverflow.com/questions/830218/NSOperation-on-the-iphone"> iPhone
http://www.icodeblog.com/tag/nsoperation/
http://www.cimgf。COC / 2008/02/16 / COCOA-TUTORIAL-NSOPERATION-AND-NSOPERATIONQUEUE /
これがあなたを助けることを願っています。
コーディングを楽しむ:)
他のヒント
すべての方法は何をしていますか?バックグラウンドスレッドが実際にタスクを実行できるようにするために、インスタンスがネットワーク要求である場合は、ランループが必要になる場合があります。