11

我正在与 Alamofire 合作。跟进 Mattt 在 GitHub 上一个已关闭问题中的评论,我尝试了一种NSURLProtocol基于 - 的机制来设置UIApplication.sharedApplication().networkActivityIndicatorVisible标志。

然而,在使用 Alamofire 的底层注册我的自定义协议后,NSURLSessionConfiguration我很快就卡住了,因为 Alamofire 并没有公开太多它的SessionDelegate类。

有没有一种简单的方法来通知自定义NSURLProtocol请求已完成,而无需在我的内部复制很多已经存在的 Alamofire 实现NSURLProtocol

4

1 回答 1

0

一种不同的方法(不实现 NSURLProtocol-way)是创建一个 API,它有一个executeRequest方法:

func executeRequest(method: Alamofire.Method, url: NSURL, parameters: [String: String]?, headers: [String : String]?) {
        // Show activity indicator on status bar
        UIApplication.sharedApplication().networkActivityIndicatorVisible = true

        let request = manager.request(method, url, parameters: parameters, encoding: .JSON, headers: headers)
            .responseJSON {
                response in
                ...

                // Hide activity indicator on status bar
                UIApplication.sharedApplication().networkActivityIndicatorVisible = false
        }
    }

当然,您的所有请求都必须使用新创建的 API 执行。

于 2016-03-25T15:54:27.737 回答