Swift 2 - строка в массив [строка]

1

От 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
    Это возвращение пришло из файла PHP, верно? Swift получит это возвращение в виде строки, вы должны использовать плагин JSON для swift, чтобы манипулировать этой информацией. например, SwiftyJSON
  • 0
    Я уверен, что ваш infoArray на самом деле не массив строк, это просто необработанное строковое значение, которое вы получаете от своего php-бэкенда. Вы должны разобрать это. вы можете использовать SwiftyJSON, как предложено @Felipe Umpierre.
Показать ещё 1 комментарий
Теги:
string
arrays
swift2

1 ответ

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

  • 0
    Это не то, что говорит Нейт (его пример с copy был для NSMutableArray). И это не ответ на вопрос ОП в любом случае.
  • 1
    спасибо за отзыв @EricD. Может быть, я неправильно понял. Хотите разработать?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню