尝试将对象添加到NSSet时iPhone计算器应用程序崩溃

时间:2012-04-29 21:22:43

标签: iphone objective-c xcode debugging cs193p

我正在通过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'中查看整个值列表?

1 个答案:

答案 0 :(得分:1)

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

NSMutableSet *setOfVariables = [[NSMutableSet alloc] init];