Я тестирую некоторые строки, такие как одна, две, три, семь и т. Д., Чтобы увидеть, являются ли они числами, используя код ниже.Это работает нормально, если строка на самом деле является числом, но падает, когда строка не является числом, как в слове «сбережения».
Весь смысл метода состоит в том, чтобы выяснить, можно ли представить строкукак число, поэтому я не знаю, как исключить случаи, когда это не так - если это действительно проблема.Я думаю, что это проблема, но я думаю, что я также мог что-то упустить, так как я слаб в опционах.Строка, на которой я запускаю эту строку, которая выдает ошибку, является словом «сбережения».
Вот мой код:
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
}
}
Исключение гласит:
Неустранимая ошибка: неожиданно обнаружен ноль при развертывании необязательного значения
В отладчике я могу убедиться, что stringValue является "экономией"
Спасибо за любые предложения.