Xcode でプログラミングするときによくあるエラーの 1 つは、名前の変更、リファクタリング、または入力ミスが原因であるかどうかにかかわらず、不適切なセレクターです。ボタン ターゲットなど、多くの機能が SEL パラメータを使用するため、これらを回避することはできません。
ビルド中には検出されないため、ランタイム クラッシュが発生するまでは問題ないように見えます。
使用されるセレクターの大部分はコーディング時に既知であるため、動的にする必要はありません。@selector() を使用するだけでなく、SEL を指定するより良い方法はありますか?
そうでない場合、少なくともビルド時にコンパイラーがチェックできるように @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 :(
}