Objective c 如何在函数范围内声明对象?
我正在参加斯坦福CS193p(iTunes U上)的作业2,我被一个EXC_BAD_访问错误弄糊涂了 在第一个作业中,我们使用了如下内容:Objective c 如何在函数范围内声明对象?,objective-c,exc-bad-access,Objective C,Exc Bad Access,我正在参加斯坦福CS193p(iTunes U上)的作业2,我被一个EXC_BAD_访问错误弄糊涂了 在第一个作业中,我们使用了如下内容: - (IBAction)operationPressed:(UIButton *)sender { //... NSString *resultString = [NSString stringWithFormat:@"%g", result]; self.display.text = resultString; } 这很有效。现在
- (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_访问会崩溃。我的问题是:为什么第一个示例可以使用+stringWithFormat:
函数生成NSString,而第二个示例不能生成NSSet?是否需要使用[[NSSet alloc]init]
执行某些操作?我还尝试使用NSSet的+initWithObjects:
,但运气不佳。您的集合中有一个字符串是C字符串,而不是NSString
换句话说,您忘记了@
在“π”
字符串之前
"π"
您忘记了此字符串前面的
@
符号,这使其成为C字符串而不是NSString。使用@“π”
。让我看看选择哪个选项而不是“太本地化”…这个问题似乎离题了,因为它是关于缺少at符号的。属于typewriting.stackexchange.com。(说真的,这太本地化了。)我还看到过与此完全相同的问题的其他问题-一个C字符串,其中预期会出现NSString
。如果其他人也有同样的问题,它真的太本地化了吗?当然,其他问题可能无法通过搜索找到。@rmaddy这是一个简单的打字错误问题,因此它是。@rmaddy(此外,它也是一个简单的“我懒得打开调试器”问题,因此它更适合现在过时的“太本地化了”。)是的,我还不能接受这个答案。这就是我所说的“过于本地化”。谢谢