【发布时间】:2012-03-15 23:23:01
【问题描述】:
我正在 iTunes U 上学习 CS193P 课程,并且有一个与作业 #2(可编程计算器)相关的问题。我看到有关此主题的其他 Q/A,但没有直接解决我的问题。希望有人能帮忙。
在赋值中,它调用了一个方法
+ (double)runProgram:(id)program usingVariableValues:(NSDictionary *)variableValues;
它使用 NSDictionary(不可变类型)作为参数。字典要包含变量名(键)和对应的值(各种类型的数字)。这些值来自按三个特殊键之一,称为“测试 1”、“测试 2”和“测试 3”。我可以第一次将值放入字典,但如果用户按下键进行第二次或第三次测试,我无法找到将它们放入字典的方法。我似乎无法更改字典中的值或破坏字典(dealloc 和 release 不适用于 XCode 4.3/IOS 5 中打开的 ARC),因此我可以创建一个新字典。我觉得我一定错过了一些明显的东西,但不知道是什么。任何有关我如何做上述任何一项的帮助都将不胜感激。
(我意识到我可以使用 NSDictionary 的可变版本,但作业特别说明使用不可变版本 - 如果我理解正确的话)。
【问题讨论】:
-
您的代码目前是什么样的?你的
Test 1是如何工作的,而Test 2却不行?两者有什么不同? -
测试 1 和测试 2 之间没有区别,只是它们使用不同的值(相同的键)启动 NSDictionary。用户可以按任何顺序按下 3 个测试键 - 因此,如果测试 1 是第一个,它可以工作,但测试 2 不能。如果测试 2 是第一个,它可以工作,但测试 1 不行。第二组值不会进入字典。那是我的问题。
-
很好的说明,谢谢;不过恐怕您需要显示更多代码才能发现问题。
标签: objective-c