我正在尝试在Swift中实现一个新的REST服务,但我迷路了。我需要在我的服务receeipt中删除“可选”字符串:
func callServiceReceives(){
var jsonReceived: JSON = []
Alamofire.request(.GET, "http://localhost:8080/userServicesProvider")
.responseJSON { (_, _, pruebaJSON, _) in
jsonReceived = JSON(pruebaJSON!)
println(jsonReceived["recibos"].array?.count) // "Optional(4)"
}
}
// If i try if let temp:String! = String(stringInterpolationSegment: jsonReceived["recibos"].array?.count) {
// println(temp) -> "Optional(4)"
// } -> say me "Bound value in a conditional binding must be of Optional type"
//If i try -> let temp:String! = String(stringInterpolationSegment: jsonReceived["recibos"].array?.count)
//
// if let temp2 = temp!{
// println(temp2) -> "Optional(4)"
//} -> i had the same problem: "Bound value in a conditional binding must be of Optional type"
你能帮我吗?
非常感谢
答案 0 :(得分:1)
您将!
放在错误的位置。它应该在这里:
println(jsonReceived["recibos"].array?.count!)
但为了安全起见,你可能会更好:
println(jsonReceived["recibos"].array?.count.map{String($0)} ?? "Error")
如果您的数组为零,则会打印“错误”,或者:
jsonReceived["recibos"].array?.count.map(println)
如果您的数组为零,则不会打印任何内容。
答案 1 :(得分:0)
您将获得一个可选项,因为您的阵列是可选的。
尝试打印println(jsonReceived[“recipes”].array!.count)
然而,这并不是最好的方法。您应该使用if let
语句来检查您的数组是否为零。之后,您可以获得新赠品的数量。这将不再是一个可选项。
if let temp = jsonReceived[“recipes”].array{
println(temp.count)
}
答案 2 :(得分:0)
如果你不需要知道空数组和没有数组之间是否存在差异......
let count = jsonReceived["recibos"].array?.count as? Int ?? 0