NSInvocation クラスリファレンス 翻訳元
このページの最終更新:2010-02-05
ADCの最終更新:2009-07-04
ADCの最終更新:2009-07-04
継承するクラス | NSObject |
準拠しているプロトコル | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework? |
使用可能な環境 | Mac OS X v10.0 |
コンパニオンガイド | Distributed Objects Programming Topics |
宣言ファイル | NSInvocation.h |
サンプルコード | CubePuzzle DeskPictAppDockMenu ForwardInvocation |
概観(Overview)
NSInvocationクラスは静的なObjective-Cのメッセージです。つまり、アクションをオブジェクト化したものです。NSInvocationオブジェクトはメッセージをストアしてオブジェクト間、またはアプリケーション間で転送するのに使われます。主にNSTimerオブジェクトや分散オブジェクトシステムで使用されます。
NSInvocationオブジェクトはObjective-Cのメッセージの全ての要素、つまりターゲット、セレクタ、引数、戻り値を収容します。これらの要素は直接設定でき、戻り値はNSInvocationオブジェクトを転送した時に自動的に設定されます。
NSInvocationオブジェクトは異なるターゲットに繰り返し転送することができます。また異なる結果を得る為に、引数を転送の合間に変えることもできます。更に、同じメソッドシグネチャ(引数と戻り値)を持つセレクタに変更することさえできます。この柔軟性のおかげで、NSIncovationクラスは頻繁に変更される引数を多数持つメッセージを繰り返し送信する時に役立ちます。わずかに違う表現でそれぞれのメッセージを打ち直すよりも、NSInvocationを新しいオブジェクトに転送する度に必要に応じて変更した方が良いでしょう。
NSInvocationオブジェクトはObjective-Cのメッセージの全ての要素、つまりターゲット、セレクタ、引数、戻り値を収容します。これらの要素は直接設定でき、戻り値はNSInvocationオブジェクトを転送した時に自動的に設定されます。
NSInvocationオブジェクトは異なるターゲットに繰り返し転送することができます。また異なる結果を得る為に、引数を転送の合間に変えることもできます。更に、同じメソッドシグネチャ(引数と戻り値)を持つセレクタに変更することさえできます。この柔軟性のおかげで、NSIncovationクラスは頻繁に変更される引数を多数持つメッセージを繰り返し送信する時に役立ちます。わずかに違う表現でそれぞれのメッセージを打ち直すよりも、NSInvocationを新しいオブジェクトに転送する度に必要に応じて変更した方が良いでしょう。
NSInvocationクラスは可変数の引数と共用体を引数に持つメソッドの発動はサポートしていません。NSInvocationオブジェクトを生成する時はincvocationWithMethodSignature:クラスメソッドを使用し、allocメソッドとinitメソッドを使用しないようにしてください。
このクラスは標準では収容されたメッセージの為に引数を保持しません。NSInvocationオブジェクトを生成してから使用するまでの間に引数が消えてしまう可能性がある場合は、オブジェクトを明確に保持しておくか、retainArgumentsメソッドを呼び出しNSInvocationオブジェクトに引数を保持させましょう。
このクラスは標準では収容されたメッセージの為に引数を保持しません。NSInvocationオブジェクトを生成してから使用するまでの間に引数が消えてしまう可能性がある場合は、オブジェクトを明確に保持しておくか、retainArgumentsメソッドを呼び出しNSInvocationオブジェクトに引数を保持させましょう。
注:NSInvocationクラスはNSCodingプロトコルに準拠していますが、NSPortCoderクラスによる符号化しかサポートしていません。NSInvocationオブジェクトはアーカイブ化に対応していません。 |
採用しているプロトコル(Adopted Protocols)
このクラスでできること(Tasks)
NSInvocationオブジェクトの生成(Creating NSInvocation Objects)
+ invocationWithMethodSignature:
NSInvocationオブジェクトの設定(Configuring an Invocation Object)
– setSelector:
– selector
– setTarget:
– target
– setArgument:atIndex:
– getArgument:atIndex:
– argumentsRetained
– retainArguments
– setReturnValue:
– getReturnValue:
– selector
– setTarget:
– target
– setArgument:atIndex:
– getArgument:atIndex:
– argumentsRetained
– retainArguments
– setReturnValue:
– getReturnValue:
NSInvocationの発動(Dispatching an Invocation)
– invoke
– invokeWithTarget:
– invokeWithTarget:
メソッドシグネチャの取得(Getting the Method Signature)
– methodSignature