我正在尝试从服务器获取用户数据。在加载数据之前,应用程序不必显示任何 View 。 我阅读了有关 typealias 的内容,但我不明白如何使用它。
我想要的是:加载数据后,继续下一步。如果失败,重新加载数据。
这是我声明类型别名的方式
typealias onCompleted = () -> ()
typealias onFailed = () -> ()
这是我的请求代码
func getUserData(_ completed: @escaping onCompleted, failed: @escaping onFailed){
let fullURL = AFUtils.getFullURL(AUTHURL.getUserData)
AFNetworking.requestGETURL(fullURL, params: nil, success: {
(JSONResponse) -> Void in
if let status = JSONResponse["status"].string {
switch status{
case Status.ok:
completed()
break
default:
failed()
break
}
}
})
}
但是在调用 getUserData 时我如何在我的 View Controller 上使用它呢?
最佳答案
假设您的自定义 AFNetworking.requestGETURL
完成处理程序在主队列上被调用:
func viewDidLoad() {
super.viewDidLoad()
getUserData({
//do somthing and update ui
}) {
//handle error
}
}
编辑:
我怎么理解你的评论,你实际上想命名你的完成和错误 block 参数。如果是这样,请将方法更改为:
func getUserData(completion completed: @escaping onCompleted, error failed: @escaping onFailed){ ... }
并这样调用它:
getUserData(completion: {
//do somthing and update ui
}, error: {
//handle error
})
关于ios - 从服务器获取数据时如何使用typealias,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41614809/