Swift 2-字符串到数组[String]


Swift 2 - String to Array [String]

我从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进行迭代,并将每个元素附加到一个新的字符串数组中。但性能可能是个问题。