gpt4 book ai didi

ios - 如何提取内部响应值并将其传递给UserModel

转载 作者:行者123 更新时间:2023-12-01 18:08:23 26 4
gpt4 key购买 nike

我正在使用alamofire从Web API获取HTTP响应。我只是想问问如何在不使用swift对象映射器框架的情况下从响应中解析JSON值并将其传递给authenticatedUser.loadUserData遇到了一些问题,因为响应返回了响应类型,并且我的函数在NSArray中可以正常工作,我如何才能转换为与Response一起使用

func GetUserCredential(username:String,password:String)->UserModel
{
let authenticatedUser = UserModel()
let user = username
let password = password

let credential = NSURLCredential(user: user, password: password, persistence: .ForSession)

Alamofire.request(.GET, "https://httpbin.org/basic-auth/\(user)/\(password)")
.authenticate(usingCredential: credential)
.responseJSON { response in
return self.loadUserData(response);

}

return authenticatedUser;

}

func loadUserData(response: Response<AnyObject, NSError>) -> UserModel
{
var userObj = UserModel()
for resp as? Response<AnyObject, NSError> in response
{
let user:String = (resp["user"] as! String)
let isAuthenticated:Bool = (resp["authenticated"] as! Bool)
let isManager:Bool = true

userObj = UserModel(username:user,isAuthenticated:isAuthenticated,isManager:isManager)
}
return userObj
}

最佳答案

我相信您可以使用Alamofire响应对象来做到这一点。

if let validResponse = response.result.value as? [String : AnyObject] {
return loadUserData(validResponse);
}

我将您的 loadUserData更改为此:
func loadUserData(response: [String : AnyObject]) -> UserModel
// Do everything you're doing in loadUserData
}

我还会在 loadUserData方法中进行更多错误检查,因为最好不要假设 userauthenticated始终存在(如果您的应用程序不存在或它们的值属于不同类型,则您的应用程序将崩溃)。

我还建议您使用小写的 GetUserCredential命名 getUserCredential,以保持最佳命名功能。

关于ios - 如何提取内部响应值并将其传递给UserModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36801454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com