Я программист на С ++, новичок в Objective-C.
Я создал приложение калькулятора, которое работает нормально, используя одно представление.У меня есть класс вычислений и ViewController.Каждый раз, когда нажимается кнопка, метод IBAction в ViewController вызывает методы, определенные в классе Calculations, для обработки ввода и возвращает вывод в виде строки NSSt, которую я затем устанавливаю в качестве значения поля label.text.
Сейчас я работаю над приложением панели вкладок, используя тот же класс вычислений.Это приложение имеет две вкладки, каждая с уникальным набором кнопок ввода для калькулятора (оба представления имеют одни и те же данные ввода / вывода).Первая вкладка идентична моему первому приложению с единым представлением, поэтому я пытаюсь сделать это аналогичным образом.
Вот проблема:
Когда нажата кнопка,Метод IBAction, который обрабатывает ввод, проходит через вызовы методов класса Calculations (показанных ниже) без ошибок:
-(IBAction)readInput:(id)sender {
[_calculations input:[sender titleForState:UIControlStateNormal]];
inputField.text = [_calculations inputDisplay];
outputField.text = [_calculations outputDisplay];
}
однако методы inputDisplay и outputDisplay возвращают nil.Используя отладчик, я заметил, что не могу «войти» в вызовы методов _calculations, вместо этого строка пропускается, и значение, возвращаемое обоими, равно nil.Я добавил следующий метод:
-(IBAction)setNumber:(id)sender {
NSString *button =(NSString *)[sender titleForState:UIControlStateNormal];
inputField.text = button;
}
и, если я прикреплю его к кнопкам ввода, я смогу увидеть обновленный дисплей.Похоже, что это проблема с вызовом функций-членов _calculations и представлений панели вкладок (поскольку эта проблема отсутствует при использовании одного представления).
Я понимаю, что упустил много информации, но я сделал это, чтобы не предоставлять нерелевантную информацию.Я предоставлю все детали, которые необходимы, если спросят.