swift - 在swift中使用switch语句的布尔函数
问题描述
我正在尝试使用 switch 语句获得布尔结果,但我猜我的代码有问题
class func login(username: String , password: String) -> Bool {
let url = "http://127.0.0.1:3000/login/"+username+"/"+password
Alamofire.request(url).responseJSON { response in
switch response.result {
case .failure:
// print(error)
return false
case .success:
// print(value)
return true
}
}
}
解决方案
您应该使用带有Bool
参数的完成处理程序而不是返回值
class func login(username : String , password : String, _ completion: @escaping (Bool) -> ())
现在您可以像这样调用完成(也可以通过声明error
and来修复案例value
)
switch response.result {
case .failure(let error):
//print(error)
completion(false)
case .success(let value):
//print (value)
completion(true)
}
然后您可以在调用完成时访问Bool
其闭包内的参数。
Foo.login(username: "", password: "") { success in
// print(success)
...
}
推荐阅读
- javascript - 在 ASP.NET MVC 应用程序中管理和构建 Javascript 代码
- permissions - 在 DB2 中授予用户有限访问权限的正确方法?
- mysql - 使用行值在 mysqli 中选择列
- angularjs - 如何在 angularjs 的条件下手动打开下拉菜单?
- sql - 排除 t_sql 中的行
- python - 在 python 中做课程时,我无法理解一段代码
- xml - XSLT 中的不同值
- bash - 需要将 gpg 解密文件名分配给变量
- java - 如何使用 Stream api 加入 MultiValueMap?
- python - 如何确保和数组中的索引仅包含有效输入?