BEENetwork
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
要求
- iOS 9.0
- Swift 5.0
- Xcode 11
安装
BEENetwork 通过 CocoaPods 提供。安装它,只需将以下行添加到您的 Podfile 中
pod 'BEENetwork'
用法
不要使用缓存
NetworkManager.default.provider
.rx
.request(MultiTarget(Api.category))
.asObservable().distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
或者您可以直接使用 TargetType 请求
Api.category.request()
.map(BaseModel<ListData>.self)
.map { $0.data.list }
.subscribe(onSuccess: { (list) in
self.items = list
self.tableView.reloadData()
}) { (e) in
print(e.localizedDescription)
}.disposed(by: dispose)
使用缓存
NetworkManager.default.provider
.rx
.onCache(MultiTarget(Api.category))
.distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
/// or
Api.category.cache()
.distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map { $0.data.list }
.subscribe(onNext: { (model) in
print(model.first?.name ?? "")
self.items = model
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
您还可以自定义插件的使用
let configuration = Configuration()
configuration.plugins.append(LoggingPlugin())
let manager = NetworkManager(configuration: configuration)
manager.provider
.rx
.request(MultiTarget(Api.category))
.asObservable().distinctUntilChanged()
.map(BaseModel<ListData>.self)
.map {$0.data.list}
.subscribe(onNext: { (list) in
self.items = list
self.tableView.reloadData()
}, onError: { (e) in
print(e.localizedDescription)
}).disposed(by: dispose)
作者
liuxc123, [email protected]
许可
BEENetwork符合MIT许可。请参阅LICENSE文件以获取更多信息。