使用AFNetworking无法获得成功/失败的共享扩展回调

iMa*_*ack 10 ios afnetworking afnetworking-2 ios8-share-extension

我在共享扩展中遇到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];
    }
];
Run Code Online (Sandbox Code Playgroud)

[AuthClient sharedClient]使用单例模式来获得的一个实例AFHTTPSessionManagerNSURLSessionConfiguration集与背景标识符.

但是,无论是成功还是失败的回调都被调用,它只是无限期挂起,直到扩展被杀死.有趣的是,HTTP请求在服务器端完成; 完成永远不会被调用.

Hem*_*ang 4

我想,问题不在于AFNetworking,但问题在于那个单例类。您尚未指定应用程序的架构,但我假设您可以[AuthClient sharedClient]同时使用同一个单例在不同视图控制器中调用多个 API。因此,您实际上收到了一个success呼叫,但不是上述呼叫,而是控制器中其他地方的呼叫。我在我的基础应用程序中遇到了确切的问题UITabbarController,我在不同的视图控制器中进行 API 调用viewDidLoad,并且我的测试人员不断更改所有选项卡。因此,我尝试获取第一个视图控制器(第一个选项卡)的响应,并用于在第二个视图控制器(第二个选项卡)中获取响应,这是错误的!