我有一些NSString Globals变量。
我可以这样设置:
[[Globals sharedInstance] setColor1:@"red"];
[[Globals sharedInstance] setColor2:@"orange"];
但我在一个函数中,参数代表数字1,2,3等。 我怎么能这样做?
[[Globals sharedInstance] setColorMYPARAMETER:@"orange"];
答案 0 :(得分:1)
您可以使用NSSelectorFromString
:
int colorNum = ... ;
NSString * colorSelStr = [NSString stringWithFormat:@"setColor%d:", colorNum];
[[Globals sharedInstance] performSelector:NSSelectorFromString(colorSelStr) withObject:@"orange"];
这将创建一个看起来像您想要的方法名称的字符串,然后使用来自该字符串的SEL向共享全局对象请求“performSelector”,并将颜色字符串作为参数。
但是,这可能表明您可以更好地设计原始代码。为什么你的全局数为0-n?为什么不为所有全局颜色保留NSArray
,然后只通过索引访问它?
答案 1 :(得分:0)
SEL mySel =NSSelectorFromString([NSString stringWithFormat:@"setColor%d:",num]);
[[Globals sharedInstance] performSelector:mySel withObject:@"color"];