ios – 无法在JSON解析中将NSNumber桥接到Float

得到此错误

Fatal error: Unable to bridge NSNumber to Float. What is the problem?

这是原始消息,它是float而不是string.

{\"name\":\"Tomas\",\"gender\":\"male\",\"probability\":0.99,\"count\":594}

解决方法

Swift / Foundation中有许多不同类型的数字.您的NSkeyvalueCoding已设置为NSNumber的实例(请参阅下面的JSON序列化文档的摘录),因此您需要按原样读取,然后根据需要要求将此NSNumber转换为Float:
if let n = d.value(forKey: "probability") as? NSNumber {
    let f = n.floatValue
}

JSONSerialization文档说:

A Foundation object that may be converted to JSON must have the
following properties:

  • The top level object is an NSArray or
    NSDictionary.
  • All objects are instances of Nsstring,NSNumber,
    NSArray,NSDictionary,or NSNull.
  • All dictionary keys are instances of Nsstring.
  • Numbers are not NaN or infinity.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...