CS193P Назначение 2 - PullRequest
       2

CS193P Назначение 2

2 голосов
/ 16 марта 2012

Я изучаю курс CS193P в iTunes U и у меня есть вопрос, связанный с заданием № 2 (Progammable Calculator).Я вижу другие вопросы и ответы по этой теме, но не связанные с моей проблемой.Надеюсь, что кто-то может помочь.

В присваивании он вызывает метод

+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;

, который использует NSDictionary (неизменяемый вид) в качестве аргумента.Словарь должен содержать имена переменных (ключи) и соответствующие значения (числа различных типов).Значения получаются при нажатии одной из 3 специальных клавиш, которые называются «Тест 1», «Тест 2» и «Тест 3».Я могу получить значения в словаре в первый раз, но не могу найти способ ввести их, если пользователь нажимает клавишу для 2-го или 3-го теста.Я не могу изменить значения в словаре или уничтожить словарь (dealloc и release не работают с ARC, включенным в XCode 4.3 / IOS 5), поэтому я могу создать новое.Я чувствую, что, должно быть, упускаю что-то очевидное, но не знаю что.Любая помощь в том, как я могу сделать что-либо из вышеперечисленного, будет принята с благодарностью.

(я понимаю, что могу использовать изменяемую версию NSDictionary, но в назначении специально сказано использовать неизменную версию - если я правильно понимаю).

1 Ответ

1 голос
/ 28 марта 2012

Вы должны создать объект NSDictionary * в своих действиях для этих кнопок.У вас может быть одно действие, которое выполняет отправитель, или три действия, каждое из которых будет работать.В этом методе / тех методах, которые вам нужны для создания NSDictionary, вы можете выделить initWithObjectsAndKeys или вы можете сделать как NSMutableDictionary и добавить к нему.Затем в конце вы должны передать эти значения методу, вызвав [CalculatorBrain descriptionOfProgram:self.brain.program usingVariableValues:variableValues];

. Вы правы в использовании изменяемой версии NSDictionary, но это только аргумент для вашего descriptionOfProgram: usingVariableValues: метод.Когда вы нажимаете кнопки, вы можете создать словарь любым способом.Надеюсь, это поможет, я только что закончил это задание на днях, так что я рад уточнить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...