私のアプリケーションでは、ダウンロードした XML フィードを解析するために互いに呼び出すメソッドはほとんどありません。バックグラウンドですべての解析を行う必要がありNSOperation
、NSOperationQueue
今のところメイン スレッドで実行され、アプリ全体がフリーズしています。
私のアプリのロジックは次のようなものです:
-(IBAction) callSync{
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:APIURL]];
AFURLConnectionOperation *operation = [[AFURLConnectionOperation alloc] initWithRequest:request];
operation.completionBlock = ^{
//1
[self startParsing:operation.responseString];
};
[operation start];
}
//2
-(void)startParsing:(NSString*)str
{
//some logic
[self traverseXML:str];//Call traverseXML
}
//3
- (void) traverseXML:(TBXMLElement *)element {
//Some logic
[self saveFile:localWS];//CallsaveFile
}
//4
-(void) saveFile : (WorkFile *)_workFile{
//Some logic
}
私の質問は次のとおりです。NSOperation
各メソッドのクラスをサブクラス化する必要がstartParsing
ありtraverseXML
ます。NSOperation
または、1 つのサブクラスを作成し、内部ですべての実装メソッドを実行するだけで十分です。