【发布时间】:2015-06-09 06:00:54
【问题描述】:
我使用 AFNetworking 来处理 http 请求。这是我的代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:URL_LOGIN parameters:parames success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self.tableview reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Request failed");
}];
或:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:URL_LOGIN parameters:parames success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableview reloadData];
});
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Request failed");
}];
哪一个是正确的,是需要使用dispathc_get_main_queue(),还是AFNetworking 解决所有问题?有人知道吗?提前致谢。
【问题讨论】:
-
AFNetworking 句柄。但是为了线程安全,在主线程上调用 UI 更新方法。
-
AFNetworking 用于调用主线程上的处理程序。不幸的是,这没有很好的记录(或不够好)。为了安全起见,您应该明确地分派到您认为适合您的处理程序的任何执行上下文。
标签: ios objective-c cocoa