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

从 RankingAndSMProcess 中的 DoRankingAndSocialMediaProcessing 方法中调用的所有方法都必须以与后台线程上的 DoRankingAndSocialMediaProcessing 相同的方式调用吗?或者这里还有另一个潜在的问题?

目前我认为没有任何处理方法被解雇,因为没有收集新数据。

在添加更改调用以在后台执行之前,所有方法和整个过程都按预期工作。

4

2 回答 2

0

那些其他方法都在做什么?例如,如果它是网络请求,则可能需要运行循环以使后台线程真正能够执行任务。

于 2012-07-26T09:01:03.407 回答
0

创建一个 NSOperation 并将此操作添加到 NSOperationQueue。这将创建一个与主线程平行的新线程,它也会执行您的方法。

以下是一些有用的链接:

iPhone 上的 NSOperation

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

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

希望这会帮助你。

享受编码:)

于 2012-07-26T09:15:13.333 回答