[英]Unable to Extract Data from the Dictionary<String, Any> in swift
[英]Parsing Data Out of Dictionary<String, Any> in Swift
我正在嘗試從 Swift 中的 Dictionary<String, Any> 中提取數據。 當我運行 NSLog("\\(terminalDict)") 時,字典返回以下內容:
可選([“DFEE22”:<323c3c>,“DFEE20”:<3c>,“DFEE21”:<0a>,“DFEE17”:<07>,“DFEE1E”:,“DF10”:<656e6672 65737a68>,“ 9F1C”:<38373635 34333231>、“DFEE16”:<00>、“DFEE15”:<01>、“5F36”:<02>、“DF11”:<00>、“DFEE1F”:<80>、“DFEE18” ": <80>, "9F1A": <0840>, "9F35": <21>, "9F4E": <31303732 31205761 6c6b6572 2053742e 20437970 726573073 "2DF00000", 2DF0040000E:3005000 <30303031 35313030>, "DF26": <01>, "9F15": <1234>, "9F40": <f000f0a0 01>, "9F16": <30303030 30303030 303,030 "3030303030303030303" 9F1E": <5465726d 696e616c>])
我想將字典中的所有鍵和值取出並放入一個字符串變量 (newSettings) 中。 這就是我試圖這樣做的方式:
for (key, value) in terminalDict! {
NSLog("key is now= \(key)")
NSLog("value is now= \(value)")
let asString = value as! String
print(asString)
NSLog("Adding \(key) \(asString)")
newSettings = "\(newSettings)\(key)\(asString)"
}
返回:
關鍵是現在= DFEE22
值現在= {長度= 3,字節= 0x323c3c}
無法將“NSConcreteMutableData”(0x204aff148)類型的值轉換為“NSString”(0x204afde30)。
如何將“323c3c”作為沒有長度和字節部分的簡單字符串從字典中取出? 我找不到關於“NSConcreteMutableData”類型的太多文檔。 我是否必須使用子字符串函數才能擺脫“length=x bytes=”部分? 我猜有比手動獲取子字符串更好的方法來做到這一點。 謝謝。
正如 Vadian 所說,您的字典包含Data
值。
看起來像是 ASCII 編碼的文本,但有點難以確定。
這一點:
31303732 31205761 6c6b6572 2053742e 20437970 72657373 2c204341 202c5553 412e
表示字符串“10721 Walker St. Cypress, CA ,USA”。 當您將其視為 ASCII 時。
你可以使用這樣的代碼:
for (key, value) in terminalDict! {
NSLog("key is now= \(key)")
// Decode the data into a String assuming it's ASCII
let asString = String(data: value, encoding: .ascii)
NSLog("value is now= '\(asString)'")
print(asString)
NSLog("Adding \(key) \(asString)")
newSettings = "\(newSettings)\(key)\(asString)"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.