Я только что начал класс Stanford iOS5 и завершил калькулятор RPN, но хочу, чтобы кнопка «Очистить» работала по-другому. Вот как у меня сейчас, без каких-либо изменений в CalculatorModel «мозг»:CS193P Назначение 1 Очистить
- (IBAction)clearPressed
{
self.display.text = @""; // Clear the display
self.historyWindow.text = @""; // Clear the history window
self.model = nil; // Reset the stack
self.userIsInMiddleOfEnteringNumber = NO; // Reset user typing boolean
}
Может быть, я ошибаюсь, но «self.model = ноль;» похоже, что он действительно не удаляет объекты из стека, это просто имитирует это. Поэтому я добавил функцию к CalculatorModel «мозга»:
-(void) clearOperandStack
{
[self.operandStack removeAllObjects];
}
и хотите назвать его в моей функции «clearPressed» в CalculatorViewController, но у меня возникли проблемы, возможно, потому, что я не совсем понимаю, Objective C пока. Это то, что я думал, что должен был сделать, но, похоже, он не хочет работать.
- (IBAction)clearPressed
{
self.display.text = @""; // Clear the display
self.historyWindow.text = @""; // Clear the history window
// self.model = nil; // Reset the stack
[self.model clearOperandStack];
self.userIsInMiddleOfEnteringNumber = NO; // Reset user typing boolean
}
Может кто-нибудь, пожалуйста, объясните мне правильный способ назвать этот метод/то, что я делаю неправильно?
Вы добавили объявление в файл .h? – rooftop
Не похоже, что вы хотите работать_ - вы получаете ошибки компиляции? ошибки времени выполнения? Что оно делает? Что вы ожидали от этого? – sarnold
На крыше, вы были правы. Я не добавил объявление в файле .h. Я предполагаю, что если вы добавите его в файл реализации, а не интерфейс, он считается частной функцией? Спасибо за помощь! – Joey