У меня есть следующий код в Swift 4, и он прекрасно выводит информацию в операторе печати, но у меня возникают проблемы с пониманием того, как отображать ее в поле UIText - продолжаю получать ошибку, как показано в разделе с комментариями.Я изо всех сил пытаюсь понять, как это работает, словари, массивы и т. Д., И, возможно, смогу помочь с этим, пожалуйста.
let index1 = todo.index(forKey: "ledger")
print("Stored Key: \(todo[index1!].key)")
let btn_ledger = (todo[index1!].value)
DispatchQueue.main.async {
print("Ledger String: \(todo[index1!].value)")
if let ledgerString = todo[index1!].value as? String {
self.displayLedger.text = ledgerString
} else {
// Ooops
self.displayLedger.text = "?? unknown ??"
}
}
print("myLedger I: \(btn_ledger)")
//self.displayLedger.text = (btn_ledger)
//Could not cast value of type '__NSDictionaryI' (0x10ae73508) to 'NSString' (0x109fe42a8).
} catch {
print("error trying to convert data to JSON")
return
}
}
task.resume()
Я изучил сотни вопросов на этом форуме и только стал болеесмущенный.Каждая строка вывода оператора print выглядит следующим образом.
Ledger String: {
0 = "969081.724";
1 = "20016089.67";
10 = 20000300;
11 = 167772;
12 = "22798.006";
13 = 300;
14 = 300;
15 = 46533;
16 = 2;
17 = 64419;
18 = 7284;
19 = 2;
2 = "1140.4";
20 = 2492;
21 = "92276.546";
....
}
Как вы можете видеть, он не отсортирован.Теперь я могу найти функции сортировки, я могу найти функции, которые помещают словарь в массив и сортируют его, но я не могу найти ничего, что решает это ...
Получает данные изjson
do {
guard let todo = try JSONSerialization.jsonObject(with: responseData, options: [])
as? [String: Any] else {
print("error trying to convert data to JSON")
return
}
Пример задачи. Это начало первого бита кода, который я вставил.
// now we have the todo
// let's just print it to prove we can access it
//print("The todo is: " + todo.description)
// the todo object is a dictionary
// so we just access the title using the "title" key
// so check for a title and print it if we have one
let index1 = todo.index(forKey: "ledger")
Поле UIText: self.displayLedger.text = ledgerString
Но, возможно, это должен быть TableView?Что, каков механизм отображения этого списка данных в текстовом поле некоторого описания?
спасибо