Свифт Ханеке: данные 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