在Swift中将值从Dictionary转换为String

时间:2017-03-11 10:42:33

标签: swift dictionary

我得到了以下错误。我可以使用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
        }

1 个答案:

答案 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