我如何使以下计算器类工作?

//Calculator.h

#import <Cocoa/Cocoa.h>

@interface Calculator : NSObject {
    float initialNumber, operandNumber;
    typedef enum{
    additionOperation,
    subtractionOperation,
    multiplicationOperation,
    divisionOperation
    }operationType;
}

@property(readwrite) float initialNumber, operandNumber;
@property(readwrite) enum operationType; //Line 16

- (float) doOperation;

@end


在XCode 3.1.3中,在Calculator.h的第16行出现“错误:'typedef'之前的语法错误”和“警告:声明未声明任何内容”

//Calculator.m

#import "Calculator.h"

@implementation Calculator
@synthesize initialNumber, operandNumber, operationType;

-(float) doOperation{
    switch (self.operationType){  //Line 9
        case 0:
            return self.initialNumber + self.operandNumber;
            break;
        case 1:
            return self.initialNumber - self.operandNumber;
            break;
        case 2:
            return self.initialNumber * self.operandNumber;
            break;
        case 3:
            return self.initialNumber / self.operandNumber;
            break;
        default:
            return 0;
            break;
    }
}

@end


在实现中,XCode给我“在接口中找不到属性'operationType'的声明”,并且“对成员'operationType'的请求不是结构或联合。”我是否正确声明了枚举?

另外,在switch语句中,我可以使用“ case addOperation”还是必须使用“ case 0”?

最佳答案

将枚举声明从类声明中移出。您可以将其放在上方。并且您可能想要将typedef重命名为“ OperationType”。然后,在现在有声明的位置,声明该类型的变量:'OperationType operationType;'

10-06 11:54