-2

我在斯坦福 CS193p 的作业 2(在 iTunes U 上),我被 EXC_BAD_ACCESS 错误弄糊涂了。

在第一个作业中,我们使用了这样的东西:

- (IBAction)operationPressed:(UIButton *)sender {
    //...
    NSString *resultString = [NSString stringWithFormat:@"%g", result];
    self.display.text = resultString;
}

这工作得很好。现在,我正在尝试类似的东西NSSet

+ (double)runProgram:(id)program{
    NSMutableArray *stack;
    NSSet *listOfFunctions = [NSSet setWithObjects:@"cos", @"sin", @"sqrt", "π", @"tan", @"neg", @"^", @"rad", @"+", @"-", @"/", @"*", nil];
    //...
}

*listOfFunctions当函数运行时,这会在行上与 EXC_BAD_ACCESS 一起崩溃。我的问题是:为什么第一个示例可以工作并从+ stringWithFormat:函数中生成 NSString 而第二个示例不能生成 NSSet?我需要做些什么[[NSSet alloc] init]吗?我也尝试过使用 NSSet + initWithObjects:,但没有运气。

4

2 回答 2

3

您的集合中的一个字符串是 C 字符串,而不是NSString.

换句话说,您忘记了字符串@之前的内容。"π"

于 2013-06-26T00:38:51.283 回答
0
"π"

您忘记了@该字符串前面的符号,这使它成为 C 字符串而不是 NSString。改为使用@"π"

于 2013-06-26T00:39:19.240 回答