sendSynchronousRequest阻止了应用?

时间:2012-05-02 10:16:53

标签: iphone nsurlconnection

这种方法过去表现不错,但今天在app被阻止的地方很奇怪。我无法检查其状态或某事。有什么建议吗?提前谢谢。

3 个答案:

答案 0 :(得分:2)

这是synchronous次请求的想法。如果您想要非阻塞操作,请在另一个线程(而不是您的主线程)中使用asynchronous请求或synchronous。如果您需要进一步澄清,请随时提出。

答案 1 :(得分:1)

当您使用同步请求或核心数据操作时。记得在后台线程中运行它,因为它会暂停你的UI

[self performSelectorInBackground:@ selector(updateData)withObject:nil];

答案 2 :(得分:1)

您应发送异步请求...它不会影响UI并将在后台运行。例如:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
[[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

此请求在后台运行,可以使用下面提到的委托方法接收和处理数据。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

由于UI适用于主线程,因此不会阻止UI。