Решение математики с использованием DDMathParser в Objective-C

Я хотел бы использовать DDMathParser для решения математической задачи. Верхний ответ на этот вопрос Stackru показывает, как, но он только решает его в журнале. Я хотел бы получить ответ в виде строки на целое число. Код NSLog(@"%@", [math numberByEvaluatingString]); также работает, но он только печатает его в журнал.

То, что я хотел бы сделать, было бы что-то вроде answerText = @"%@", [math numberByEvaluatingString];где "math" - строка для оценки, а "answerText" - строка для отправки ответа. Тем не менее, когда я пытаюсь отобразить строку в метке, как Label.text = [NSString stringWithFormat:answerText];Я получаю ошибку sigabrt. Я не уверен, что случилось. Этот код не работает с целым числом.

Заранее спасибо!

2 ответа

Решение

Пытаться:

label.text = [NSString stringWithFormat:@"%@", [math numberByEvaluatingString]];

Вероятно, есть лучший способ привести его к строке, но мне лень, чтобы посмотреть, что numberByEvaluatingString на самом деле возвращается.

Версия DDMathParser для Objective-C возвращает NSNumber, Это означает, что для отображения его в качестве значения в текстовом поле вам необходимо преобразовать его в строку.

При использовании +stringWithFormat: будет работать, это не технически правильно. Используя +stringWithFormat:Вы полагаетесь на -description из NSNumber, которая может иметь информацию, которую вы не хотите, или не хватает информации, которую вы действительно хотите.

Лучший способ "сделать" NSNumber в NSString подходит для потребления человеком, чтобы использовать NSNumberFormatter,

Другие вопросы по тегам