Swift 2 — String to Array [Строка]

От php я запрашиваю ответ. Ответ должен быть массивом [String] Тем не менее, Свифт рассматривает этот ответ как 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

1

Решение

ну, учитывая, что это массив строк, а не примитивов, возможно, этот будет работать, как предложено Нейт Кук:

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 и добавить каждый элемент в новый массив строк. Но производительность может быть проблемой.

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]