【发布时间】:2013-06-28 06:51:02
【问题描述】:
有了这些枚举...
typedef enum {
ThisThingA = 0,
ThisThingB = 1
} ThisThing;
typedef enum {
ThatThingX = 8,
ThatThingY = 9
} ThatThing;
还有这些属性...
@property (nonatomic) ThisThing thisThing;
@property (nonatomic) ThatThing thatThing;
我能做到……
self.thisThing = thatThingX;
并且我没有收到编译器的警告,这是我所期望的。为什么编译器没有警告?为什么我可以将 ThatThing 类型的东西分配给 ThisThing 类型的东西?
根据 Martin R 的回答进行编辑:但如果我这样做......
[self setThisThing:thatThingX];
我收到警告:从枚举类型“ThatThing”隐式转换为不同的枚举类型“ThisThing”
(Xcode 4.6.3 和 iOS 6.0)
【问题讨论】:
-
int a =5;诠释 b = 6; a=b - 也没有警告)
-
我曾经在这种情况下收到警告。因为我不介意它们,所以我无法说出启用或禁用这些警告的选项。
-
@Maria 好的,我明白了。但这些都是打字的。我是新手,但我认为这就是 typedef 的意义所在。
-
@HermannKlecker:选项为
-Wenum-conversion,默认开启。由于某种原因,它不适用于属性“点”语法,见下文。
标签: objective-c c enums