1

簡単な質問です...ボタンを作成し、それにいくつかのアクションを追加したとします:

-(IBAction)btnclicked:(id)sender {
        //some code here
}

そして今、私はそれを呼び出したいので、これを行うことができます:

[self btnclicked:self];

selfそれで私の質問は、演劇の後はどのような役割を果たしbtnclickedますか? このように書くのはなぜ間違っているのでしょうか。

[self btnclicked:sender];

助けてください。

4

1 に答える 1

1

送信者はタイプIDであり、任意のObjective-cオブジェクト(またはnil)にすることができます。したがって、メソッドに好きなものを渡すことができ、コンパイラは満足します。

ただし、そのメソッド内で行うことは、ある種のUIControlを凌駕している可能性があるため、UIViewやNSStringなどを渡すと、認識されないセレクターやその他のクラッシュが発生する可能性があります。言い換えれば、自分が何をしているのかを知っている限り、好きなことを渡すことができます。

送信者を渡すのが間違っているというあなたの質問に対して。使用しているコンテキストで送信者が定義されていないため、コンパイラに警告が表示されていると思います。senderは、メソッド内の引数に付けられた変数名であり、渡すことができるグローバル変数または定数ではありません。

于 2012-07-14T09:40:29.743 に答える