1

这种方法曾经表现良好,但今天奇怪的是应用程序被阻止了。我无法检查它的状态或某事。有什么建议吗?提前致谢。

4

3 回答 3

2

synchronous这就是请求的想法。如果您想要非阻塞操作,请使用asynchronous请求或synchronous在另一个线程(不是您的主线程)中使用。如果您需要进一步说明,请随时询问。

于 2012-05-02T10:45:39.607 回答
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 不会被阻塞。

于 2012-05-02T11:55:49.957 回答
1

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

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

于 2012-05-02T10:54:43.983 回答