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