我更新了xcode 4.4(使用apple llvm compiler 4.0),从那时起,当我试图在控制台中打印xml时,xcode和app(在模拟器中)会阻止用户交互……我需要等待30秒或更长时间,直到完成(我什么也做不了)。
我正在使用afnetworking和tbxml,但问题不在parse中,因为如果我删除了parse,问题将继续。
所以我尝试了nsoperationqueue,nsblockoperation,grand dispatch central…什么也没有,还是冻住了。
是因为XML太大吗????(…我需要打印XML来调试和测试东西)
1:请求并打印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);
            }
        }
    }];

最佳答案

2012年7月8日发布的4.4.1似乎解决了这个问题。

关于objective-c - Apple LLVM编译器4.0在打印XML(NSLog)时卡住xcode和应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11686547/

10-10 14:33