0

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];
     }

RankAndSMProcessのDoRankingAndSocialMediaProcessingメソッド内から呼び出されるすべてのメソッドは、バックグラウンドスレッドのDoRankingAndSocialMediaProcessingと同じ方法で呼び出す必要がありますか?または、ここに別の潜在的な問題がありますか?

現在、新しいデータが収集されていないため、どの処理メソッドも実行されていないと思います。

バックグラウンドで実行する呼び出しを変更する前に、すべてのメソッドとプロセス全体が期待どおりに機能しました。

4

2 に答える 2

0

それらの他の方法は何をしているのですか?たとえば、ネットワーク要求の場合、バックグラウンド スレッドが実際にタスクを実行できるようにするために、実行ループが必要になる場合があります。

于 2012-07-26T09:01:03.407 に答える
0

NSOperation を作成し、この操作を NSOperationQueue に追加します。これにより、メインスレッドと並行して新しいスレッドが作成され、メソッドも実行されます。

便利なリンクを次に示します。

NSiPhoneでの操作

http://www.icodeblog.com/tag/nsoperation/

http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/

これがあなたを助けることを願っています。

コーディングをお楽しみください :)

于 2012-07-26T09:15:13.333 に答える