Sar*_*ith 6 xcode objective-c ios
我有名字的宏
CONSTANT_1
CONSTANT_2
CONSTANT_3
CONSTANT_4 etc..
Run Code Online (Sandbox Code Playgroud)
我有一个NSString变量从另一个类发送只包含宏名称,如何访问与此NSString匹配的宏变量的内容.
我的NSString变量定义为:
NSString *str=@"CONSTANT_3"
Run Code Online (Sandbox Code Playgroud)
1 这是一种解决方案,但它需要您了解所有宏:
#define CONSTANT_1 1
#define CONSTANT_2 2
#define CONSTANT_3 3
#define STRINGIZE(x) #x
+ (int)getValueForContant:(NSString *)constantStr {
const char *charStr = STRINGIZE(CONSTANT_1);
NSString *str = [NSString stringWithUTF8String:charStr];
if ([constantStr isEqualToString:str]) {
return CONSTANT_1;
}
charStr = STRINGIZE(CONSTANT_2);
str = [NSString stringWithUTF8String:charStr];
if ([constantStr isEqualToString:str]) {
return CONSTANT_2;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
并将其用作:
int constVal = [ClassName getValueForContant:@"CONSTANT_1"];
Run Code Online (Sandbox Code Playgroud)
它会给你带来int价值回报。
2 用于.plist定义常量并循环以获取适当的值作为为此方法提供的字符串参数;
+ (int)getValueForContant:(NSString *)constantStr
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |