AlamofireUIManager 1.0.0

AlamofireUIManager 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年11月
SwiftSwift 版本3
SPM支持 SPM

Alex Corlatti 维护。



 
依赖
Alamofire~> 4
SwiftyJSON~> 3
 

AlamofireUIManager

AlamofireRouter 是一个简单的 Alamofire 路由器。如果您需要 Swift 2.3 版本,请使用 0.1.0 的 pod 版本

示例

要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install

要求

  • iOS 9.0+ / tvOS 9.0+
  • Xcode 8.0+

用法

在您的 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 文件。