1

我在 Xcode 中编程时最常见的错误之一是错误的选择器,无论是由于重命名、重构还是输入错误。它们无法避免,因为许多功能都使用 SEL 参数,例如按钮目标。

它们在构建过程中没有被检测到,所以在你遇到运行时崩溃之前一切看起来都很好。

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

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

谢谢大家!


- (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 :(
}
4

0 回答 0