Вы не можете преобразовать строку в enum, так как имена перечислений не сохраняются, вместо этого вы можете создать функцию, которая делает это, сравнивая строки, это длиннее, но я не думаю, что у вас есть другой вариант,макрос может помочь:
NAChannelTitle getEnumTitle(NSString *sTitle) {
#define CHECK_ENUM(X) if([sTitle isEqualToString:@#X]) return X
CHECK_ENUM(first);
// the same for all enum
return defaultEnum; // add this to the enum
#undef CHECK_ENUM
}
, тогда вы можете сделать:
NAChannelTitle temp = getEnumTitle(channelName);
NSLog(@"Temp : %d",temp);
switch (temp) {
case first:
return @"background-channel-sporttitle-portrait.png";
break;
case LatestNews:
return @"background-channel-title-portrait.png";
break;
case Opinion:
return @"background-channel-title-portrait.png";
break;
case Special:
return @"background-channel-sporttitle-portrait.png";
break;
case Sports:
return @"background-channel-sporttitle-portrait.png";
break;
case Thisweek:
default:
return @"background-channel-title-portrait.png";
break;
}
return nil;