我如何使以下计算器类工作?
//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;'