我正在通过2010年秋季版的斯坦福级CS193P,iPhone编程。在作业2上,我正在改进在作业1中创建的计算器应用程序。似乎我差不多完成但是当我尝试按下界面上的一个变量时,应用程序崩溃了(出于这些目的,“x”)。
利用我有限的调试技巧,我设法追踪问题。问题出现在方法“(NSSet)variablesInExpression:(id)anExpression”中。
+ (NSSet *)variablesInExpression:(id)anExpression
{
NSMutableSet *setOfVariables = [[NSSet alloc] init];
for (NSString *str in anExpression) {
if ([str hasPrefix:VARIABLE_PREFIX]) {
[setOfVariables addObject:str];
}
}
[setOfVariables autorelease];
return setOfVariables;
}
当我到达
行[setOfVariables addObject:str];
该应用程序崩溃了。我一直想弄清楚几个小时,请帮忙!在XCode中有没有办法在'anExpression'中查看整个值列表?
答案 0 :(得分:1)
虽然您将变量声明为可变集,但您创建了不可变NSSet类的实例 - 您必须创建NSMutableSet实例:
NSMutableSet *setOfVariables = [[NSMutableSet alloc] init];