【发布时间】:2021-10-02 17:24:38
【问题描述】:
我正在尝试从 Swift 中的 Dictionary
可选([“DFEE22”:,“DFEE20”:,“DFEE21”:,“DFEE17”:,“DFEE1E”:,“DF10”:、“9F1C”:、“DFEE16”:、“DFEE15”:、“5F36”:、“DF11”:、“DFEE1F”: ,“DFEE18”:,“9F1A”:,“9F35”:,“9F4E”:,“DF26”:,“9F15”:,“9F40”:
,“9F16”:,“9F33”:, "9F1E": ])
我想从字典中取出所有键和值并放入一个字符串变量(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
现在的值 = {length = 3, bytes = 0x323c3c}
无法将“NSConcreteMutableData”(0x204aff148)类型的值转换为“NSString”(0x204afde30)。
如何将字典中的“323c3c”作为没有长度和字节部分的简单字符串取出?我找不到太多关于“NSConcreteMutableData”类型的文档。我是否必须使用子字符串函数才能摆脱“length = x bytes =”部分?我猜有比手动获取子字符串更好的方法来做到这一点。谢谢。
【问题讨论】:
-
您的字典是
[String:Data]类型。还有一些值不能用字符串表示,除非你更喜欢十六进制字符串。 -
NSConcreteMutableData,这是一个Data。长话短说,它实际上是一个NSMutableData,带有一个隐藏的Apple 实现以进行优化。但显然,将其视为Data实例。如果您将其作为十六进制字符串,请参阅stackoverflow.com/questions/39075043/…
标签: swift dictionary nsstring nsdictionary