【发布时间】:2016-12-30 19:00:48
【问题描述】:
我创建了一个 Alamofire 路由器来管理我的所有 API 调用,如下所示 -
enum Router: URLRequestConvertible {
static let baseURLString = "http://testapi.silive.in/api/"
case getAll()
func asURLRequest() throws -> URLRequest {
var method: HTTPMethod {
switch self {
case .getAll():
return .get
}
}
let url: URL = {
let relativePath: String
switch self {
case .getAll():
relativePath = "get_list_"
}
var url = URL(string: Router.baseURLString)
url?.appendPathComponent(relativePath)
return url!
}()
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = method.rawValue
let encoding = JSONEncoding.default
return try encoding.encode(urlRequest, with: nil)
}
}
class APIManager {
static let sharedInstance = APIManager()
func getAllPapers() {
Alamofire.request(Router.getAll()).responseString {
response in
if let recievedString = response.result.value {
print(recievedString)
}
}
}
}
现在在我的视图控制器的viewDidLoad 方法中,我想调用APIManager.sharedInstance.getAllPapers() 并且在请求执行时需要显示一个活动指示器。
问题是我可以在调用方法之前启动活动指示器,但是如何停止指示器。 Alamofire 请求的完成块无权访问 VC 中存在的 activityIndicator。
【问题讨论】:
标签: ios swift swift3 alamofire