nsstring 에서 enum 타입으로 캐스팅하는 방법
C# 에 익스텐션과 유사한 방식.
헤더파일:
typedef NS_ENUM(NSInteger, LoginType)
{
NONE,
GOOGLE,
FACEBOOK,
APPLE,
GUEST,
};
@interface NSString (EnumParser)
- (LoginType)loginTypeEnumFromString;
@end
구현부:
@implementation NSString (EnumParser)
- (LoginType)loginTypeEnumFromString
{
NSDictionary<NSString*,NSNumber*> *loginTypes = @{
@"NONE": @(NONE),
@"GOOGLE": @(GOOGLE),
@"FACEBOOK": @(FACEBOOK),
@"APPLE": @(APPLE),
@"GUEST": @(GUEST),
};
return loginTypes[self].integerValue;
}
@end
사용예:
NSString *myloginType = @"GOOGLE";
LoginType enumValue = [myloginType loginTypeEnumFromString];
출처
https://stackoverflow.com/questions/925991/objective-c-nsstring-to-enum