我有一个UIButton动作,它抓住了按钮发送者
这一行为我提供了我在switch语句中使用的sender标签
int senderTag = [sender tag];
然后我必须做...
switch (senderTag) {
case 1:
brain.selectedPaintColor1 = myColor;
break;
case 2:
brain.selectedPaintColor2 = myColor;
break;
case 3:
brain.selectedPaintColor3 = myColor;
...
我真正希望能够做的是使用标签来设置像这样的变量属性名称
[brain.selectedPaintColor%i,senderTag] = myColor;
任何人都可以协助语法来做到这一点吗?
谢谢!
答案 0 :(得分:2)
直接翻译您想要的内容
NSString *key = [NSString stringWithFormat:@"selectedPaintColor%i", senderTag];
[brain setValue:myColor forKey:key];
答案 1 :(得分:1)
或者,由于上面的赋值方法实际上被转换为对setter方法的调用,因此可以构建一个选择器数组并从索引数组中调用一个方法。 (不过现在不会扼杀语法 - 选择器总是让我的头受伤。)
(事实上,有一种动态查找选择器的方法,因此您可以构建选择器名称字符串并查找它,而不是预构建数组。)
答案 2 :(得分:0)
将您的媒体资源selectedPaintColor1
,selectedPaintColor2
等合并到NSMutableArray
中并将其用作媒体资源。现在的语法是:
[brain.paintColors replaceObjectAtIndex:sender.tag withObject:myColor];
请注意,如果您的sender
类型为id
,则必须先将其(UIView)
投放。