通过方法传递2个对象 - iPhone SDK

时间:2010-11-20 02:08:14

标签: iphone objective-c methods object

我有这个“观察者”观察UISwitch的价值变化:

[cell.switcher addTarget:self action:@selector(switched:withName:) forControlEvents:UIControlEventValueChanged];

当值改变时,调用此方法:

-(void)switched:(UISwitch *)switcher withName:(NSString *)name;

正如您所看到的,我需要使用第一个代码传递两个对象。如何通过addTarget:action:forControlEvents方法发送nsstring和uiswitch的对象,以便我可以在选择器中访问它们:withname?

谢谢,

凯文

编辑:我对obj-c不是很好,并没有真正正确地学习这些条款,所以如果我犯了错误请告诉我!

2 个答案:

答案 0 :(得分:3)

最好的方法是标记UISwitch对象:

uiSwitch1.tag = 0;
uiSwitch2.tag = 1;
...

然后在您的switched:方法上,您可以测试发件人的代码并在那里定义字符串:

-(void)switch:(id)sender {
    switch ([sender tag]) {
        case 0:
        // set the string for uiSwitch1
        case 1:
        // set the string for uiSwitch2
        ...
    }
}

答案 1 :(得分:1)

你做不到。 UIControl操作的选择器只会传回发送方(在本例中为您的cell.switcher)。您应该找到一种方法,根据发件人的操作和ID识别您需要的字符串。