[英]Using named value from enum in Objective C
我有一個枚舉定義如下:
typedef enum modifiers {
modifierNone=-1,
modifierCmd,
modifierShift,
modifierOption
} Modifier;
我想做的是將一個方法的字符串值傳遞給另一個方法(modifierCmd),然后創建相關的Modifier傳遞給單獨的方法。
- (void)methodOne:(NSString *)stringValue {
Modifier mod = (Modifier)stringValue;
[self methodTwo:mod];
}
應該行嗎?
謝謝
不。 但是,您可以使用一個函數:
Modifier makeModifier(NSString *s)
{
if ([s isEqualToString:@"modifierNone"]) {
return modifierNone;
} else if ([s isEqualToString:@"modifierCmd"]) {
return modifierCmd;
} /* etc... */
}
- (void)methodOne:(NSString *)stringValue
{
[self methodTwo:makeModifier(stringValue)];
}
我認為這行不通,因為數據類型確實不同。 實際上,當NSString是對象時,枚舉實際上是整數。 您可以使用if else來檢查修飾符。 但我建議直接傳遞修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.