我正在使用以下代码测试一些字符串,例如一,二,三,七等,以查看它们是否为数字。如果该字符串实际上是一个数字,但是当该字符串不是单词“ 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”
谢谢您的建议。