Ios 从服务器获取数据时如何使用typealias
我正在尝试从服务器获取用户数据。在加载数据之前,应用程序不必显示任何视图。 我读过关于typealias的文章,不知道如何使用它 我想要的是:加载数据后,继续下一步。如果失败,请再次加载数据 下面是我如何声明typealias的Ios 从服务器获取数据时如何使用typealias,ios,swift,swift3,grand-central-dispatch,completionhandler,Ios,Swift,Swift3,Grand Central Dispatch,Completionhandler,我正在尝试从服务器获取用户数据。在加载数据之前,应用程序不必显示任何视图。 我读过关于typealias的文章,不知道如何使用它 我想要的是:加载数据后,继续下一步。如果失败,请再次加载数据 下面是我如何声明typealias的 typealias onCompleted = () -> () typealias onFailed = () -> () 这是我的申请代码 func getUserData(_ completed: @escaping onCompleted, fa
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时,如何在视图控制器上使用它 假设在主队列上调用了自定义AFNetworking.requestGETURLs完成处理程序:
func viewDidLoad() {
super.viewDidLoad()
getUserData({
//do somthing and update ui
}) {
//handle error
}
}
编辑:
我如何理解您的评论,您实际上想要命名您的完成和错误块参数。如果是,请将方法更改为:
func getUserData(completion completed: @escaping onCompleted, error failed: @escaping onFailed){ ... }
这样称呼它:
getUserData(completion: {
//do somthing and update ui
}, error: {
//handle error
})
为什么您要使用AFN与Swift联网?有一个来自同一个开发人员的框架,做同样的事情,只用Swift编写。如果这是真正的代码结构,我将返回JSONResponse,而不是两个单独的对象,并在调用方法中进行切换。如果这只是一个正确/错误的问题,我会返回一个Bool->不要专注于AFNetworking,AF是我的项目首字母我使用Alamofire和SwiftyJSONAs作为旁注,我建议将您的类型别名大写为OnCompleted和OnFailure,或者更好的是,CompletedBlock和FailureBlock。TypeAlias表示类型,顾名思义,类型使用大写的名称。什么不起作用?调用这个很好,但是调用错误完成块时如何调用getUserDate