現(xiàn)在有一個(gè)場(chǎng)景,在固定的兩個(gè)或者兩個(gè)以上字符串之間進(jìn)行選擇滞详,第一反應(yīng)是用枚舉凛俱,但是枚舉返回的通常是整數(shù)紊馏,所以解決方案是在.m文件中自定義一個(gè)全局字符串變量,用switch case方法蒲犬,根據(jù)枚舉返回不同的字符串朱监,實(shí)現(xiàn)的方法如下
NSString * NSStringFromCardType(CardType cardType) { //實(shí)際上這是一個(gè)C語(yǔ)言風(fēng)格函數(shù) 傳入枚舉參數(shù),返回字符串
switch (cardType) {
case CardTypeLoanCard:
return @"abc";
break;
case CardTypeDebitCard:
return @"def";
break;
default:
return nil;
break;
}
}
這是最核心的方法原叮,當(dāng)這個(gè)字符串需要被其他類(lèi)引用的時(shí)候赫编,在頭文件中用extern修飾一下
extern NSString * NSStringFromCardType(CardType cardType);
最后是枚舉的實(shí)現(xiàn)方法
typedef NS_ENUM(NSInteger,CardType){
CardTypeLoanCard = 1,
CardTypeDebitCard = 2
};