iOSのセレクタ(Selector)

1841 ワード

1はじめに
    本論文はセレクタに関する文章で、Selectorは方法名として理解できます。具体的には以下の通りです。
    英語の原文:http://blog.csdn.net/developer_zhang/articale/details/12180099
    転載は出典を明記してください。 http://blog.csdn.net/developer_zhang
2詳しく述べる
    Selectorはオブジェクトの中でメソッドを選択して実行する名前で、またはソースコードがコンパイルされたときに名前を換えるための唯一の表示です。Selectorは自分では何もできません。それは簡単に方法を示しています。selectorメソッド名が通常の文字列と異なるようにする唯一のことは、コンパイラがselectorsを決定することである。selectorを有効にすることは、(実行時との組み合わせ)動的関数ポインタのような役割をしています。与えられた名前に対して、自動的にクラスに向けて適用される方法の実現です。私たちはrun法のselectorを持っていて、種類Docg、AthleteとComputterSimulation(それぞれのクラスでrun法を実現しました)を仮定します。Selectorは、各クラスのインスタンスによって使用され、それを呼び出すことができるrun方法――設定方法の実装は、互いに異なるかもしれない。
2.1どのようにSelectorを獲得しますか?
    コンパイルされたselectorsはSELタイプです。selectorを得る方法は二つあります。
・コンパイル期間に、コンパイル表示@selectorを使用します。
SEL aSelector = @selector(methodName);
・運転中はNSSelectorFroomStringメソッドを使用しています。文字列はメソッド名です。
SEL aSelector = NSSelectorFromString(@"methodName");
 私たちはコードを送信したいです。運行を知っているときに名前を知っているメッセージを送るとき、私たちはselectorを使って文字列を作成します。
2.2 Selectorの使い方
    私たちはselectorをパラメータとするperformSelector:を呼び出す方法ができ、他の同様の方法で使用できます。
SEL aSelector = @selector(run);
[aDog performSelector:aSelector];
[anAthlete performSelector:aSelector];
[aComputerSimulation performSelector:aSelector];
(この技術を使って特別な場合には、例えば、taget-action設計モードを使用したオブジェクトを実現しました。通常、私たちは直接に簡単にこの方法を呼び出す。)
3おわりに
    以上はすべての内容ですので、皆さんに助けてもらいたいです。