0

当我在设备上运行应用程序时,没有调用 NSURLRequest 委托方法。虽然它在模拟器上完美运行。在请求完成之前我的视图加载也不是这种情况,因为我只能在连接接收到数据后才能加载视图。

我的代码请求网址在这里。非常感谢任何帮助。

- (void)viewWillAppear:(BOOL)animated
{ 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://-dev01x/content"]; cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60];
    [request setHTTPMethod:@"GET"];
    _getData = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    NSLog(@"HELLO %@",_getData);
}
4

2 回答 2

2

您在此处提供的代码毫无意义:

_getData = [[NSURLConnection alloc] initWithRequest:request delegate:self];

该行返回一个指向 NSURLConnection 对象的指针,您的变量名具有误导性。如果您想在此时阻止(并且甚至可以工作),那么您似乎需要在此时使用 sendSynchronousRequest。

我做的事情与你想做的事情相似,但以更传统的方式。在 viewDidLoad 甚至 initWithFrame 中,我将启动一个异步连接,设置一个标志,并将视图背景颜色设置为黑色或白色(我也通常使用微调器)。当我得到 viewWillAppear 时,如果连接完成,一切都很好,我设置了各种 UI 元素。如果没有,则不要执行任何操作,稍后,当连接完成时,拉下微调器并更新 UI。

我能想到的在您尝试阻止主线程的唯一方法是使用该同步请求(恕我直言,这是处理此问题的一种非常糟糕的方法)。

在后台做事的美妙之处在于,如果花费的时间太长,用户可以点击后退按钮或转到应用程序中的其他位置[在这种情况下,您取消连接并关闭所有内容。]

于 2012-09-12T11:37:11.037 回答
1

检查您在浏览器中签入时提供给 NSMutableURLRequest 的 url 什么都没有

在此处输入图像描述

NSMutableURLRequest 需要有效的 url

于 2012-09-12T10:43:58.563 回答