1

Xcode でプログラミングするときによくあるエラーの 1 つは、名前の変更、リファクタリング、または入力ミスが原因であるかどうかにかかわらず、不適切なセレクターです。ボタン ターゲットなど、多くの機能が SEL パラメータを使用するため、これらを回避することはできません。

ビルド中には検出されないため、ランタイム クラッシュが発生するまでは問題ないように見えます。

  1. 使用されるセレクターの大部分はコーディング時に既知であるため、動的にする必要はありません。@selector() を使用するだけでなく、SEL を指定するより良い方法はありますか?

  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