xcode 4.4 (Apple LLVM コンパイラ 4.0 を使用) に更新し、それ以来、コンソールで XML を印刷しようとすると、xcode とアプリ (シミュレーター) がユーザーの操作をブロックします...そして、終了するまで 30 秒以上待つ必要があります (できます)。何もしません)
AFNetworking と TBXML を使用していますが、解析を削除すると問題が継続するため、問題は解析されません。
だから私はNSOperationQueue、NSBlockOperation、グランドディスパッチセントラルを試してみます...そして何も、まだフリーズしています。
XMLが大きすぎるからですか??? (...デバッグとテストのために XML を出力する必要があります)
1º Request と print XML
- (void) doRequestPOST:(NSString*)URL params:(NSString*)params withSuccess:(void(^)(BOOL,id))successBlock{
(....)
AFHTTPRequestOperation *op = [sharedAPI HTTPRequestOperationWithRequest:request success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString* xml = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
//>>>>>PROBLEM HERE<<<<< if i remove next line (nslog) the problem does not occur
NSLog(@"\n\nResponse \nURL :\n%@\nXML :\n%@\n \n",operation.request.URL,xml);
[xml release];
TBXML * tbxml = [TBXML newTBXMLWithXMLData:responseObject error:nil];
[self saveCookiesFromHTTPHeaderFields:[operation response] withTBXML:tbxml.rootXMLElement];
if (successBlock) {
successBlock(TRUE,responseObject);
}
}
2º 「successBlock(TRUE,responseObject);」からのリクエストと解析レスポンスを要求します。
[self doRequestPOST:stringURL params:nil withSuccess:^(BOOL success, id response) {
if (success) {
//will parse response
[self.dictionaryCategoryContents setObject:[Parser parseVodContent:response] forKey:idCategory];
if (responseBlock){
responseBlock (YES,[dictionaryCategoryContents objectForKey:idCategory]);
}
}else {
if (responseBlock){
responseBlock (NO,response);
}
}
}];