BIG BROTHER 正在监视着你.
BigBrother 是一个为 iOS 制作的 Swift 库,它自动监视任何执行的请求,并设置 网络活动指示器。
这主要是一个概念验证,由于 NSURLProtocol
的工作方式,存在一些限制。其中一些是:
NSURLProtocol
不继承 NSURLSession
配置的头信息(参见 https://github.com/Alamofire/Alamofire/issues/473)NSURLProtocol
与身份验证 API 不兼容(参见 https://github.com/marcelofabri/BigBrother/issues/2)它受到了 这篇评论 的启发,作者为 Mattt Thompson。
它还基于 这篇教程,用于创建 NSURLProtocol
,并列出 AFNetworkActivityIndicatorManager
的实现,它来自于 AFNetworking。
NSURLConnection
和 NSURLSession.sharedSession()
BigBrother.addToSharedSession()
NSURLSessionConfiguration
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
BigBrother.addToSessionConfiguration(configuration)
let session = NSURLSession(configuration: configuration)
NSURLConnection
和 NSURLSession.sharedSession()
中移除BigBrother.removeFromSharedSession()
NSURLSessionConfiguration
中移除var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
BigBrother.removeFromSessionConfiguration(configuration)
let newSession = NSURLSession(configuration: configuration)
在使用NSURLSessionConfiguration对象初始化会话对象之前,适当地配置它非常重要。会话对象会复制您提供的配置设置并使用这些设置来配置会话。一旦配置完毕,会话对象将忽略您对NSURLSessionConfiguration对象的任何更改。如果您需要修改传输策略,则必须更新会话配置对象并使用它来创建一个新的NSURLSession对象。
BigBrother.URLProtocol
是 NSURLProtocol
的子类,用于管理网络活动指示器,并且它是公开的。如果您想将其添加到 NSURLSessionConfiguration
或默认的 NSURLProtocol
(由 NSURLConnection
和 NSURLSession.sharedSession()
使用),则可以这样做。
BigBrother.Manager
也是公开的,因此您可以直接管理网络活动指示器。
BigBrother.Manager.sharedInstance.incrementActivityCount()
// do something...
BigBrother.Manager.sharedInstance.decrementActivityCount()
BigBrother 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的Podfile中
pod 'BigBrother'
然后,使用 CocoaPods 0.36 或更高版本运行 pod install
。
使用 XCTest
进行单元测试,测试文件位于 BigBrotherTests 文件夹中。
Marcelo Fabri
BigBrother 在 MIT 许可证下可用。有关更多信息,请参阅LICENSE文件。