如何知道数组中是否有特定的字符串?我想做这样的事情:
if (getUsuarios().containsString(usuarioView.text!) == false) {
print("hola")
alerta("Ups, vas a tener que cambiar algo", texto2: "Ese usuario ya existe", alertaNum: "refreshAlert6")
usuarioView.text = ""
}
getUsuarios
就是这样:
func getUsuarios() -> String {
var usuariosDataBase = [String]()
Alamofire.request(.GET, url)
.responseJSON { response in
print(response)
do {
let json = try NSJSONSerialization.JSONObjectWithData(response.data!, options: .AllowFragments)
if let blogs = json as? [[String: AnyObject]] {
for blog in blogs {
if let usuario = blog["usuario"] as? String {
usuariosDataBase.append(usuario)
}
}
}
} catch {
print("error serializing JSON: \(error)")
}
print(usuariosDataBase)
}
return "\(usuariosDataBase)"
}
答案 0 :(得分:0)
Alamofire.request
异步工作。
包含异步调用的函数/方法永远不会具有返回值。
您需要回调,例如
func getUsuarios(completion : ([String]) -> Void) {
var usuariosDataBase = [String]()
Alamofire.request(.GET, url)
.responseJSON { response in
print(response)
do {
let json = try NSJSONSerialization.JSONObjectWithData(response.data!, options: .AllowFragments)
if let blogs = json as? [[String: AnyObject]] {
for blog in blogs {
if let usuario = blog["usuario"] as? String {
usuariosDataBase.append(usuario)
}
}
}
} catch {
print("error serializing JSON: \(error)")
}
completion(usuariosDataBase)
}
}
并用
调用它getUsuarios() { (usarios) in
if usarios.filter({$0.containsString(self.usuarioView.text!)}).isEmpty == false {
print("hola")
self.alerta("Ups, vas a tener que cambiar algo", texto2: "Ese usuario ya existe", alertaNum: "refreshAlert6")
self.usuarioView.text = ""
}
}
重要提示:代码非常简单。您应该添加适当的错误处理,至少考虑Alamofire返回的错误参数。