我从php请求响应。响应应该是一个数组[String]
,但是swift将此响应视为一个String
。
如何将String
转换为[String]
?
PHP:
print_r(json_encode($arrayUser));
// Print Out ["aaa","bbb","ccc","ddd"]
SWIFT 2.0:
let infoArray = responseValue
// Reads ["aaa","bbb","ccc","ddd"]
print(infoArray[1])
// error: Ambiguous use of 'subscript'
为什么Swift将数组视为字符串?如何将其转换为数组[String]
?
我也试过:
let infoArray = responseValue as! [String]
//warning: Cast from 'String' to unrelated type '[String]' always fails
好吧,如果它是一个字符串数组,而不是基元,也许这会起作用,正如Nate Cook:所建议的那样
let infoArray = responseValue.map { $0.copy() }
更新(以下@Eric D.评论):
如果responseValue为[String],则:
let infoArray:[String] = responseValue.map { $0.copy() as! String }
如果responseValue为String,则:
let infoArray = Array(responseValue.characters)
另一个建议是对responseValue进行迭代,并将每个元素附加到一个新的字符串数组中。但性能可能是个问题。