违规元素是
let mSSIDDATA = SSIDDict["SSIDDATA"]
字段。如果我保持原样,它会打印到日志窗口,如下所示。
Looking up SSID info for en0 SSIDDict Values: ["SSID": SKYF7BFF, "BSSID": 7c:4c:a5:c:8b:15, "SSIDDATA": <534b5946 37424646>]
mSSID: SKYF7BFF
mBSSID: 7c:4c:a5:c:8b:15
mSSIDDATA: <534b5946 37424646>
SSID: SKYF7BFF
BSSID: 7c:4c:a5:c:8b:15
SSIDDATA: <534b5946 37424646>
=========
但是 - 它不会打印到 iOS 界面的 UITextField
中。其他两个有,但是第三个没有,我不明白为什么。?
如果我将 [String : Any]
更改为 [String : AnyObject]
,它会创建另一组警告和错误。
那么基本上,我如何将 mSSIDDATA
转换为 UITextField
可以处理的字符串?
guard let SSIDDict: [String : Any] = (unwrappedCFDictionaryForInterface as NSDictionary) as? [String: AnyObject] else {
print("System error: interface information is not a string-keyed dictionary")
return false
}
print("SSIDDict Values: \(SSIDDict)")
let mSSID = SSIDDict["SSID"] as? String
let mBSSID = SSIDDict["BSSID"] as? String
let mSSIDDATA = SSIDDict["SSIDDATA"] //as? String
print("mSSID: \(mSSID ?? "")")
vSSID.text = mSSID
print("mBSSID: \(mBSSID ?? "")")
vBSSID.text = mBSSID
print("mSSIDDATA: \(mSSIDDATA ?? "")")
vSSIDDATA.text = mSSIDDATA as? String
for d in SSIDDict.keys {
print("\(d): \(SSIDDict[d]!)")
}
}
return true
}
最佳答案
如名字mSSIDDATA
暗示和输出<...>
表示值的类型是Data
if let mSSIDDATA = SSIDDict["SSIDDATA"] as? Data {
print(String(data: mSSIDDATA, encoding : .utf8)!) // SKYF7BFF
}
实际上是 Data
mSSID
的代表字符串值。
关于ios - String 数组的一个元素不会打印到 Swift4 中的 UITextField 中。转换为任何或字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49922389/