Swift中使用.spellout的NumberFormatter异常

时间:2019-03-18 02:00:55

标签: ios swift nsnumber nsnumberformatter numberformatter

我正在使用以下代码测试一些字符串,例如一,二,三,七等,以查看它们是否为数字。如果该字符串实际上是一个数字,但是当该字符串不是单词“ savings”中的数字时崩溃,则可以正常工作。

该方法的重点是找出字符串是否可以表示为数字,因此我不知道如何排除不是的情况-如果确实存在问题。我认为这就是问题所在,但我想我也可能会缺少一些东西,因为我对可选组件的能力很弱。我正在运行此字符串并产生错误的字符串是单词“ savings”。

这是我的代码:

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是否为“ savings”

谢谢您的建议。

0 个答案:

没有答案