gpt4 book ai didi

objective-c - 在类中使用枚举和 switch 语句

转载 作者:行者123 更新时间:2023-12-03 16:29:56 26 4
gpt4 key购买 nike

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

//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 给我“在接口(interface)中找不到属性‘operationType’的声明”,并且“对成员‘operationType’的请求不是结构或联合。”我是否正确声明了我的枚举?

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

最佳答案

将枚举声明移出类声明。你可以把它放在上面。您可能想将 typedef 重命名为“OperationType”。然后,在现在声明的地方,声明该类型的变量:'OperationType operationType;'

关于objective-c - 在类中使用枚举和 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3005840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com