iOS:在简单计算器中使用未声明的标识符错误

iOS:在简单计算器中使用未声明的标识符错误,ios,objective-c,compiler-errors,Ios,Objective C,Compiler Errors,我得到了这个编译器错误“使用未声明的标识符”,正如标题所说。我试着写一个“结果”,一个“运算执行”,基本上是一些数学方程。我是Xcode新手,所以不要惩罚我:)。谢谢你的时间 相应地编辑代码 @interface CalculatorViewController () @end @implementation CalculatorViewController -(void)setOperand:(double)aDouble { operand = aDouble; } -(dou

我得到了这个编译器错误“使用未声明的标识符”,正如标题所说。我试着写一个“结果”,一个“运算执行”,基本上是一些数学方程。我是Xcode新手,所以不要惩罚我:)。谢谢你的时间

相应地编辑代码

@interface CalculatorViewController ()

@end

@implementation CalculatorViewController
-(void)setOperand:(double)aDouble
{
    operand = aDouble;
}

-(double)performOperation:(NSString *)operation
{
    if ([operation isEqualToString:@"sqrt"])
    {
        operand = sqrt(operand);
    }
    else if ([operation isEqualToString:@"+/-"] && operand !=0)
    {
        operand = -1 * operand;
    }
    else if ([operation isEqualToString:@"1/x"] && operand !=0)
    {
        operand = 1.0 / operand;
    }

    else if ([operation isEqualToString:@"sin"])
    {
        operand = sin(operand);
    }
    else if ([operation isEqualToString:@"cos"])
    {
        operand = cos(operand);
    }
    else if ([operation isEqualToString:@"tan"])
    {
        operand = tan(operand);
    }
    else
    {
        [self performWaitingOperation];
        waitingOperation = operation;
        waitingOperand = operand;
    }
    return operand;
}

-(void)performWaitingOperation
{
    if ([@"+" isEqual:waitingOperation] )
    {
        operand = waitingOperand + operand;
    }
    else if ([@"*" isEqual:waitingOperation])
    {
        operand = waitingOperand * operand;
    }
    else if ([@"-" isEqual:waitingOperation])
    {
        operand = waitingOperand - operand;
    }
    else if ([@"/" isEqual:waitingOperation])
    {
        if(operand)
        {
            operand = waitingOperand / operand;
        }
    }
}

-(IBAction)operationPressed:(UIButton *)sender
{
    if (userIsInTheMiddleOfTypingANumber)
    {
        setOperand:[[display text] doubleValue];
        userIsInTheMiddleOfTypingANumber = NO;
        decimalAlreadyEnteredInDisplay = NO;
    }
    NSString * operation = [[sender titleLabel] text];
    double result = [self operformOperation:operation];
    [display setText:[NSString stringWithFormat:@"%f", result]];
}
这一行:

double result = performOperation:operation;
是无效语法。也许你想要:

double result = [self performOperation:operation];

如果没有更多的上下文,很难说。

请显示准确的错误消息。在这种情况下,它确切地告诉你问题是什么。好吧,我最后解释一次:错误不是Xcode,而是编译器,不管人们滥用了多少次,也不管人们会滥用多少次可怜的“Xcode”标记,它都会保持原样,是一个IDE,它不会神奇地成为编译器。知道确切的消息,以及它标记的行,会很有帮助的。是的,可能就是这样。或者至少其中一个。我已经用您的答案更新了代码。在这种情况下,您还有另一个类似的错误:
setOperand:[[display text]doubleValue]我想你应该买一本入门书。我会的,尽管我暂时在obj-c(附言,有什么推荐吗?)。但更重要的是,我该如何解决这个问题?所以我可以成功地编译代码并进行计算?什么?第二个问题的解决方案与第一个问题完全相同。你为什么不用同样的方法修理呢?我们不是来为你工作的。