2015-07-09 3 views
0

Я использую NSExpression для решения строк из пользовательского ввода. Вот кодКак получить нуль, если что-то не может быть оценено?

var userInput = "5+" 
var solveUserInput = NSExpression(format: "\(userInput)") 

Это разобьет мою программу, потому что она не может решить, но то, что я хочу сделать, это вернуть ноль, если строка неразрешимо NSExpression. Есть какой-либо способ сделать это?

+1

Посмотрите [здесь] (http://stackoverflow.com/questions/28005595/handle-nsinvalidargumentexception-exception-from-nsexpression-with-swift?lq=1) и [здесь] (http://stackoverflow.com/вопросы/24710424/улов-ан-исключение-для-недействительного-ввода пользователя-в-Swift). –

ответ

1

NSExpression на самом деле не предназначен для такого использования (оценка пользовательского ввода).

Я предлагаю вам вместо этого посмотреть на DDMathParser.

+0

Я пробовал это раньше, но он всегда падает. –

+0

Это меня удивляет. Я использую его в небольшом проекте, без проблем. –

+0

Если вы хотите посмотреть на него, перейдите по этой ссылке http://stackoverflow.com/questions/31168751/mathematics-parser-in-swift –

Смежные вопросы