将@selector()用于已知目标时,如何避免BAD SELECTOR错误

时间:2012-10-20 00:34:51

标签: objective-c ios

我在Xcode中编程时遇到的一个更常见的错误是错误的选择器,无论是由于重命名还是重构或错误输入。它们无法避免,因为许多函数使用SEL参数,如按钮目标。

在构建期间未检测到它们,因此在发生运行时崩溃之前一切正常。

  1. 由于大多数选择器在编码时都是已知的,因此不需要动态,是否有更好的方法来指定SEL而不是仅仅使用@selector()?

  2. 如果没有,至少有一种方法可以在构建时至少由编译器检查CAN格式化@selector()吗?

  3. 全部谢谢!


    - (void)viewDidLoad
    {
        UIButton* buttonBroken = [[UIButton alloc] initWithFrame: CGRectMake(100, 50, 100, 44)];
        [buttonBroken addTarget: self action:@selector(theWrongFunction) forControlEvents:UIControlEventTouchUpInside];
        [self addSubview: buttonBroken];
    }
    
    - (void)theRightFunction
    {
        // Everything compiled without warning or issues, but I never got a call :(
    }
    

0 个答案:

没有答案