测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年11月 |
SwiftSwift 版本 | 3 |
SPM支持 SPM | ✗ |
由 Alex Corlatti 维护。
依赖 | |
Alamofire | ~> 4 |
SwiftyJSON | ~> 3 |
AlamofireRouter 是一个简单的 Alamofire 路由器。如果您需要 Swift 2.3 版本,请使用 0.1.0 的 pod 版本
要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
在您的 viewcontroller 中创建 AlamofireUIManager
的共享实例,如下所示
class MyViewController: UIViewController {
let netManager = AlamofireUIManager.sharedInstance
...
在 viewDidLoad()
方法中设置代理
override func viewDidLoad() {
super.viewDidLoad()
netManager.delegate = self
...
实现代理方法
createSpinner() -> UIView
在加载数据时自定义视图closeSpinner(spinner: UIView?)
用于删除您自定义的视图checkJson(json: JSON, showError: Bool, completionHandler: AFRequestCompletionHandler, errorHandler: AFRequestErrorHandler)
用于在传递给完成处理程序之前检查 JSON 响应manageAlertError(error: NSError?, completition: @escaping AFRequestCompletionVoid)
自定义警报视图例如
extension MyViewController: AlamofireUIManagerDelegate {
func createSpinner() -> UIView {
let act = UIActivityIndicatorView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
act.center = self.view.center
act.activityIndicatorViewStyle = .Gray
self.view.addSubview(act)
act.startAnimating()
return act
}
func closeSpinner(spinner: UIView?) {
guard spinner != nil else { return }
if let act = spinner as? UIActivityIndicatorView {
act.stopAnimating()
act.removeFromSuperview()
}
}
func checkJson(json: JSON, showError: Bool, completionHandler: AFRequestCompletionHandler, errorHandler: AFRequestErrorHandler) {
if let errorStr = json["error"]["message"].string { // Probably authorization required
let error = NSError(domain: "json", code: 401, userInfo: ["info": errorStr])
errorHandler(error)
} else { completionHandler(json) }
}
func manageAlertError(error: NSError?, completition: @escaping AFRequestCompletionVoid) {
let alertController = UIAlertController(title: "Error", message: error?.description, preferredStyle: .Alert)
let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: { _ in
self.netManager.closeAlert()
completition()
})
alertController.addAction(defaultAction)
presentViewController(alertController, animated: true, completion: nil)
}
}
Alex Corlatti, [email protected]
AlamofireUIManager 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。