+ signatureWithObjCTypes:
NSMethodSignature
object for the given Objective-C method type string.
あるNSMethodSignature
をこの与えられたObjective-Cメソッド型文字列に対して返します。
Availability 有効性
Technology
@interface NSMethodSignature : NSObject
Use an NSMethod
object to forward messages that the receiving object does not respond to—most notably in the case of distributed objects. You typically create an NSMethod
object using the NSObject
method
instance method (in macOS 10.5 and later you can also use signature
). It is then used to create an NSInvocation
object, which is passed as the argument to a forward
message to send the invocation on to whatever other object can handle the message. In the default case, NSObject
invokes does
, which raises an exception. For distributed objects, the NSInvocation
object is encoded using the information in the NSMethod
object and sent to the real object represented by the receiver of the message.
NSMethod
オブジェクトを使って、受け手側オブジェクトが応答しないメッセージを転送してください — 特に分散オブジェクトの場合に。あなたは概してNSMethod
オブジェクトをNSObject
method
インスタンスメソッドを使って作成します(macOS 10.5以降ではあなたはsignature
も使用できます)。それはそれからNSInvocation
オブジェクトを作成するのに使われます、それは引数としてforward
メッセージに渡されて、そのメッセージを取り扱える他のオブジェクト何にでも、それの上での発動を送ります。省略時の場合には、NSObject
はdoes
を発動します、それはある例外を発動します。分散オブジェクトに対して、NSInvocation
オブジェクトはNSMethod
オブジェクトの中の情報を使ってエンコードされます、そしてメッセージのレシーバによって表される実オブジェクトに送られます。
An NSMethod
object is initialized with an array of characters representing the string encoding of return and argument types for a method. You can get the string encoding of a particular type using the @encode()
compiler directive. Because string encodings are implementation-specific, you should not hard-code these values.
NSMethod
オブジェクトは、あるメソッドに対する戻り型と引数型の文字列エンコーディングを表している文字からなる配列で初期化されます。あなたは、ある特定の型の文字列エンコーディングを@encode()
コンパイラ指令を使って取得できます。文字列エンコーディングは実装固有であることから、あなたはこれらの値にハードコードすべきではありません。
A method signature consists of one or more characters for the method return type, followed by the string encodings of the implicit arguments self
and _cmd
, followed by zero or more explicit arguments. You can determine the string encoding and the length of a return type using method
and method
properties. You can access arguments individually using the get
method and number
property.
メソッドシグネチャは、メソッド戻り型に対する1つ以上の文字、続けてself
と_cmd
、続けてゼロ個以上の明示的な引数からなります。あなたは、ある戻り型の文字列エンコーディングと長さをmethod
とmethod
プロパティを使って判定できます。あなたは、引数に個々にアクセスすることがget
メソッドとnumber
プロパティを使って可能です。
For example, the NSString
instance method contains
has a method signature with the following arguments:
例えば、NSString
のインスタンスメソッドcontains
は、以下の引数でメソッドシグネチャを持ちます:
@encode(BOOL)
(c
) for the return type
@encode(BOOL)
(c
) 、戻り型に対して
@encode(id)
(@
) for the receiver (self
)
@encode(id)
(@
) 、レシーバ (self
) に対して
@encode(SEL)
(:
) for the selector (_cmd
)
@encode(SEL)
(:
) 、セレクタ (_cmd
) に対して
@encode(NSString *)
(@
) for the first explicit argument
@encode(NSString *)
(@
) 、最初の明示的な引数に対して
See Type Encodings in Objective-C Runtime Programming Guide for more information. Type EncodingsをObjective-C Runtime Programming Guideにおいてさらなる情報として見てください。
+ signatureWithObjCTypes:
NSMethodSignature
object for the given Objective-C method type string.
あるNSMethodSignature
をこの与えられたObjective-Cメソッド型文字列に対して返します。
- getArgumentTypeAtIndex:
numberOfArguments
frameLength
methodReturnType
methodReturnLength
- isOneway
NSInvocation