Как я могу отобразить вывод словаря в виде UIText или UITableview, вероятно?Я потерял понимание - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующий код в 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?Что, каков механизм отображения этого списка данных в текстовом поле некоторого описания?

спасибо

...