在类

时间:2016-07-22 21:54:52

标签: ios swift alamofire uiactivityindicatorview

我有一个网络管理员课程(单身)。

对于应用程序必须进行的每个API调用,都会调用与此网络管理器不同的函数。

我希望此NM的每个函数都首先显示一个活动指示符,直到达到每个函数的完成处理程序:向用户显示正在执行请求。

最好的方法是什么?

我正在使用Alamofire pod,如果可以帮助的话。

以下是我的一个API调用示例:

func loadSetting(for user: String, completionHandler: (UserSetting?) -> ()) {
    myActivityIndicator.start //a line I'd like to perform in every function of this class
    let parameters = ["UUID": user]

    _ = Alamofire.request(.POST, "http://www.google.com/users", parameters: parameters)
        .responseObject { (response: Response<UserSetting, NSError>) in
            if let userSetting = response.result.value {
                print("User Setting found remotely")
                completionHandler(userSetting)
            } else {
                print("Couldn't fetch remote User Setting")
                completionHandler(nil)
            }
            myActivityIndicator.stop //a line I'd like to perform in every function of this class
    }
}

感谢。

1 个答案:

答案 0 :(得分:0)

为什么不尝试将活动指标作为参数传递? 因此,在您调用loadSetting函数的View控制器中,传入一个活动指示器,您可以在其中传入一个引用,然后在loadSetting函数中启动/停止它