我正在使用下面的代码测试一些字符串,例如一、二、三、七等,看看它们是否是数字。如果字符串实际上是一个数字,它可以正常工作,但当字符串不是“储蓄”一词中的数字时会崩溃。
该方法的重点是找出字符串是否可以表示为数字,所以我不知道如何排除不能表示的情况——如果确实是这个问题。我认为这就是问题所在,但我想我也可能会遗漏一些东西,因为我在可选方面很弱。我正在运行它的字符串产生错误是“储蓄”一词。
这是我的代码:
public extension NSString {
public var asNum: NSNumber {
// let stringValue = String(value: self)
let stringValue = self
let formatter = NumberFormatter()
formatter.isLenient = true
formatter.numberStyle = .spellOut
let num = formatter.number(from: stringValue as String)!///EXCEPTION
return num
}
}
异常内容如下:
致命错误:在展开可选值时意外发现 nil
在调试器中,我可以验证 stringValue 是“储蓄”
感谢您的任何建议。