我正在尝试从属于Obj C中的枚举typedef的字符串中获取值,但我似乎无法将值从NSString中取出。我做的是这样的事情:
typedef enum{
S,
M,
L
} Size;
-(void)function:(NSString *)var{
Size value=[var value];
swicth(value){
case S:...
case M:...
...
}
}
编辑: 字符串的内容类似于@“S”@“M”@“L”
我不知道如何才能实现这一目标。
答案 0 :(得分:2)
假设您知道字符串长度为1,则可以在位置0处打开unichar
。
switch ([string characterAtIndex:0]) {
case 'S': ...
case 'L': ...
case 'M': ...
}
答案 1 :(得分:0)
字符串包含的内容尚不清楚。是@"S"
,@"M"
还是@"L"
?如果是这样,您需要提供自己的Size
枚举值的转换。或者你可以在你的方法中使用字符串比较:
if ([var isEqualToString: @"S"]) {
// ...
} else if ([var isEqualToString: @"M"]) {
//...
} ...
但是,如果字符串包含其中一个Size
条目(例如@"0"
,@"1"
或@"2"
)的数值,则可以使用{{1}方法来做你在问题中写的比较。