Свифт Ханеке: данные Json в TextView

Я использовал Haneke Framework для получения данных с сайта. С Haneke Framework я также могу получать изображения с сайта, и эти изображения я могу представить в UIImageView. Теперь я хотел получить текст с сайта.

Я сделал это так:

 cache.fetch(URL: URL).onSuccess { JSON in
            println(JSON.dictionary?["index"])

Он напечатал мне все данные из "Индекса".

Теперь я хочу, чтобы все данные из "Индекса" были представлены в UITextView.

  self.textView.text = JSON.dictionary["index"]

Но это не работает. Я получаю ошибку:

Невозможно присвоить значение типа 'AnyObject' значению типа 'String!'

Я должен развернуть это или?

3 ответа

Решение

Наконец, это распечатывает все записи текста JSON. Структура представляет собой массив словарей. Текст очень просто отформатирован (два символа табуляции между ключом и значением).

  cache.fetch(URL: url).onSuccess { JSON in
    if let index = JSON.dictionary?["index"] as? [Dictionary<String,String>] {
      var resultString = ""
      for anItem in index {
        for (key, value) in anItem {
          resultString += "\(key)\t\t\(value)\n"
        }
        resultString += "\n\n"
      }
      self.textView.text = resultString
    }
  }
}

Как мы показали, что JSON.dictionary["index"] является массивом, это безопасный синтаксис, предполагающий, что массив содержит только один элемент

if let indexTextArray = JSON.dictionary?["index"] as? [String] {
  if !indexTextArray.isEmpty {
      self.textView.text = indexTextArray.first!
  }
}

Компилятор не знает тип элемента словаря. Если вы знаете, что это всегда String, сделайте вынужденный уклонение от AnyObject в String

self.textView.text = JSON.dictionary["index"] as! String
Другие вопросы по тегам