Я новичок в iOS и Objective-C, я уже знаю, что в классе определенное вами свойство класса может быть инициировано только в "экземпляре" этого класса.
Но есть ли механизмв Objective-C, который может хранить некоторые данные, которые могут быть использованы в методе класса класса?
Чтобы быть точным, я работаю над простым тихим приложением RPN Calculator.
И в соответствии сВ учебном руководстве по программированию для Stanford iOS (CS193P) я создаю модель RPN Calculator Controller под названием RPNCalculatorBrain, и в нем есть свойство (id)program
и метод класса +(double)runProgram:(id)program
.
(id)program
- это массив массивов всех операндов и операций, введенных пользователем.
Преподаватель в этом классе предлагает использовать метод класса, чтобы другой класс (в ситуации этой программы, functionGraphMVC) мог передать (id)program
этому методу класса и получить результат программы (или функции),Так что модель RPNCalculatorBrain можно сделать как можно более общей.
и есть еще один метод класса +(double)runProgram:(id) program using:(NSDictionary*)variableValues
.это переменная версия вышеуказанного метода класса.Поэтому, если в id(program)
есть переменная (X, a, b), этот метод класса может использовать (NSDictionary *)variableValues
для интерпретации значения переменной.
Но лично я хочу улучшить этот метод, я простоИнтересно, могу ли я сохранить специальную операцию Калькулятора (π, e) И переменную (x) в моей модели (CalculatorBrain) и дать метод класса +(void)setXValue();
тому, кто захочет его использовать.Так что я могу хранить все о расчете в моей модели.Но, насколько я знаю, я не могу хранить что-то, что можно использовать в методе класса.
И хранить эту информацию в NSUserDefault кажется неуместным, И я еще не читал Документацию о базовых данных.
Я знаю, что моя идея кажется немного странной и наивной, и я, конечно, могу использовать какой-то альтернативный подход для выполнения той же работы, но я просто хочу знать, возможно ли это.Спасибо!
Если мое описание смущает вас, ребята, пожалуйста, прости меня!Я пишу по-английски ...