有了这些枚举...
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)