Итак, эта проблема, на мой взгляд, намного сложнее, чем позволяет связанный вопрос (хотя вопрос требует "простого" синтаксического анализатора уравнений).
К счастью для вас, я думаю, что это действительно интересная проблема, и она уже написана для вас: DDMathParser
.
Он имеет хорошее количество документации , включая такие вещи, как , как добавить его в ваш проект и большой обзор его возможностей . Он поддерживает все стандартные математические операторы , включая логические и операторы сравнения (||
, &&
, ==
, !=
, <=
и т. Д.).
В вашем случае вы бы сделали что-то вроде этого:
NSNumber *result = [@"15+14 == 23" numberByEvaluatingString];
if ([result boolValue] == YES) {
....True statement....
} else {
.....False statement.....
}
В качестве заголовка, DDMathParser
предоставляется по лицензии MIT, которая требует, чтобы вы включали информацию об авторских правах и полный текст лицензии во все, что ее использует.