只是想知道 - 鉴于我有一个带有有效元素“蓝色”的 typedef 枚举“颜色”(和同名的属性),为什么这样可以:
BOOL isBlue;
if (color == blue){
isBlue = YES;
}
但这不是:
BOOL isBlue;
isBlue = (color == blue);
我刚刚开始使用枚举,所以也许我错过了一些简单的东西?
编辑 - 如前所述,“蓝色”是枚举的有效元素之一,而不是 BOOL 本身,即:
typedef enum { Blue, Red, Yellow } color;
和
@property color color;
编辑 2 - 这是我的实际代码,根据要求。我对矛盾的评论/答案有点困惑。我应该期望它编译(它没有)吗?
。H
typedef enum { AddRecipes, ManageRecipes, RemoveRecipes } mode;
<snip>
@property mode mode;
.m
@synthesize mode;
<snip>
BOOL modeIsAddRecipe = (mode == AddRecipes);
编辑 3 - 为了后代,我应该提到我的错误是微不足道且无关的。下面的讨论证明很有启发性,非常感谢。