得到此错误:
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.