我是一个新手 iOS 程序员,这是我的问题:
我有 map View 和分段控件,还有在 UIControlEventValueChanged 发生时调用的 changeMapType 函数,就像这样

// change map type with segmented control
- (IBAction)changeMapType:(id)sender
{
    NSInteger i = [mapTypeControl selectedSegmentIndex];
    if (i == 0){
        [worldView setMapType:MKMapTypeStandard];
    }
    if (i == 1) {
        [worldView setMapType:MKMapTypeSatellite];
    }
    if (i == 2) {
        [worldView setMapType:MKMapTypeHybrid];
    }
}

在 viewDidLoad 中,我想调用这个方法来设置第一个 map 类型。
[mapTypeControl setSelectedSegmentIndex:2];
[self changeMapType:nil];

上面的代码工作正常,但下面的代码工作正常
[mapTypeControl setSelectedSegmentIndex:2];
[self changeMapType:self];

所以最后,作为 SENDER 传递什么?哪个是对的?

最佳答案

由于您并没有真正对“sender”(被传递到您的 IBAction 方法)做任何事情,因此您几乎可以传递任何您想要的东西。

使用“self ”或“nil ”,你应该没问题。

如果您 do 最终在您的任何 IBAction 中使用“sender ”,那么您确实需要关心您以编程方式发送的内容。当您单击与您的操作相关联的用户界面中的按钮或某个对象时,将发送对该对象的引用。

附言就像这里的答题派对!

关于ios - 自我 IBAction 和发件人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15289817/

10-13 04:18