我有一个共享扩展中的AFNetworking的问题.在didSelectPost中,我打电话:
[[AuthClient sharedClient] POST: @"/v1/events" parameters: params success: ^ (AFHTTPRequestOperation * operation,id responSEObject) { [self.extensionContext completeRequestReturningItems: nil completionHandler: nil]; } failure: ^ (AFHTTPRequestOperation * operation,NSError * error) { NSLog(@"error: %@",error); [self.extensionContext cancelRequestWithError: error]; } ];
[AuthClient sharedClient]使用单例模式获取具有背景标识符的NSURLSessionConfiguration的AFHTTPSessionManager实例.
但是,无论是成功还是失败的回调都被调用,它将无限期挂起,直到扩展被杀死.有趣的是,HTTP请求在服务器端完成;完成从未被调用.
解决方法
我猜,问题不在于AFNetworking,但问题是与单例类.您没有指定应用程序的架构,但我假设您可以在不同的视图控制器中使用相同的[AuthClient sharedClient]单例同时调用多个API.因此,您实际上收到成功通话,但不是上述通话,而是您的控制器中的其他电话.我在基于UITabbarController的应用程序中遇到了确切的问题,我在不同视图控制器的viewDidLoad中进行API调用,我的测试人员正在不断更改所有选项卡.因此,我试图获得第一个视图控制器(第一个选项卡)的响应,并用于在第二个视图控制器(第二个选项卡)中获得响应,这是错误的!