0

我正在完成 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”中的整个值列表?

4

1 回答 1

1

尽管您将变量声明为可变集,但您创建了不可变 NSSet 类的实例 - 您必须创建 NSMutableSet 实例:

NSMutableSet *setOfVariables = [[NSMutableSet alloc] init];
于 2012-04-29T21:24:48.847 回答