我得到了以下错误。我可以使用print打印该值,但不能将其声明为label。我想在将任何字符串转换为字符串时遇到问题。
“无法将类型'__NSCFNumber'(0x1b6ffd7f0)的值转换为 'NSString'(0x1b7009398)。“
let dataDict: [AnyHashable: Any] = LBValueConverter.manageValueSnore(dataValue)
// print("kUUIDSnoreSensor dict: \(dataDict)")
let allValues = Array(dataDict.values)
for value in allValues{
mTextLabel.text = value as! String
}
答案 0 :(得分:1)
那是因为你试图从NSNumber转换为String。如果您在此词典中有不同的值,请使用:
for value in dataDict.values {
if let value = value as? String {
mTextLabel.text = value
}
else if let value = value as? NSNumber {
mTextLabel.text = value.stringValue
}
....
}
如果所有值都是NSNumber,您可以将dataDict转换为[String:NSNumber]以避免使用if-lets