7

私はiOS開発の初心者です。プログラムでボタンを追加するとき、私は少し混乱します.次のようにボタンにターゲットを割り当てるとき:

[button addTarget:self action:@selector(CallMe) forControlEvents:UIControlEventTouchUpInside];

[button addTarget:nil action:@selector(CallMe) forControlEvents:UIControlEventTouchUpInside];

CallMeどちらの場合もメソッドを呼び出しています。これらの 2 行のコードの実際の違いは何か説明してもらえますかaddTarget? ヘルプが割り当てられます。

4

3 に答える 3

7

自分自身または他のオブジェクトをアクション メッセージのターゲットとして追加すると、メッセージはまさにこのオブジェクトに送信されます。

nil をターゲットとして追加すると、実行時にメッセージがトリガーされたときに実際のターゲットが検索されます。ルックアップは、最初のレスポンダー オブジェクトから開始し、そこからレスポンダー チェーンに沿って継続します。つまり、このメソッドを実装するオブジェクトが見つかるまで、nextResponder メソッドによって返されるオブジェクトを試行します。正確なルックアップ順序の詳細については、イベント処理ガイドをご覧ください。

于 2013-06-06T06:52:53.400 に答える