[objective-c] nsstring 에서 enum 으로 변환

천현철·2021년 2월 19일
0

iOS

목록 보기
30/51
post-custom-banner

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

profile
기도하지말고 행동하라
post-custom-banner

0개의 댓글