我在Swift 4中有以下代码,并且可以在一条打印语句中很好地输出信息,但是我很难理解如何在UITextfield中显示它-不断出现错误,如注释部分所示。 我正在努力理解它是如何工作的,字典和数组等,并且可能需要一些帮助。
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")
UITextfield是 self.displayLedger.text = ledgerString
但是也许这需要一个TableView吗?那么,在某种描述的文本字段上显示此数据列表的机制是什么?
谢谢