NSURLConnection sendAsynchronousRequest NSData无法访问边块

时间:2012-12-05 10:16:05

标签: iphone nsurlconnection

这里我试图从mywebpage获取html,但是有些错误。我的代码已经在我的controller.h文件中声明了html字符串。

    [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *responde,NSData *Data,NSError *error){

            html=[[NSString alloc] initWithData:Data encoding:NSUTF8StringEncoding];
            //NSLog(@"%@",html);  //WORKING

        }];

  NSLog(@"%@",html); //NOT WORKING

2 个答案:

答案 0 :(得分:3)

在街区外使用__block NSString *html

修改

  __block NSString *html;   //please notice __block is with two underscores.

  [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *responde,NSData *Data,NSError *error){

        html=[[NSString alloc] initWithData:Data encoding:NSUTF8StringEncoding];
        //NSLog(@"%@",html);  

    }];

NSLog(@"%@",html);

答案 1 :(得分:0)

是的,它应该只在完成块内访问,因为只有在从Web服务接收数据后,回调才会获得“html”数据。您无法在街区外访问它。