【发布时间】:2016-12-15 12:17:40
【问题描述】:
任何人都知道。在用户与特定屏幕交互期间如何进行服务调用。我的意思是我需要在用户与应用程序交互时调用其他数据。但它看起来仍然像设备挂起。请帮帮我。
【问题讨论】:
-
显示您的代码。
-
“但它看起来仍然像设备挂起” - 由此,我认为 OP 试图这样做。
标签: ios objective-c afnetworking nsurlconnection
任何人都知道。在用户与特定屏幕交互期间如何进行服务调用。我的意思是我需要在用户与应用程序交互时调用其他数据。但它看起来仍然像设备挂起。请帮帮我。
【问题讨论】:
标签: ios objective-c afnetworking nsurlconnection
获取请求使用此代码
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:@"http://example.com/resources.json" parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
或
NSURL *URL = [NSURL URLWithString:@"http://example.com/resources/123.json"];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:URL.absoluteString parameters:nil progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
【讨论】:
由于您没有提到任何代码 sn-p,我假设您正在 main 线程上执行所有操作,这就是您的应用挂起的原因。具体到main 线程和background 线程,我们在main 线程和background 线程上执行所有与UI 相关的任务。因此您可以为您的background 任务创建另一个线程像这样:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Perform your background task here
});
【讨论】: