0

雇用主のプライベートAPIを使用する必要があり、次のようなメソッドがあります。

- (void)login:(NSString *)username password:(NSString *)password delegate:(void(^)(NSString *))delegate;

どういう(void(^)(NSString *))delegate意味ですか?

これはパラメータですが、ここに何が必要かわかりません。

4

2 に答える 2

4

これはブロックポインタです。ブロックに慣れていない場合は、基本的に、匿名関数をパラメーターとしてインラインで割り当てることができます。ここでの署名は、ブロックがNSStringをパラメーターとして受け取り、何も返さないことを示しています。次のように使用します。

- (void)login:(NSString *)username password:(NSString *)password delegate:(void(^)(NSString *))delegate;

[someReceiver login:yourUsername password:yourPassword delegate:^(NSString *aString)
{
     // This is the block (annonymous function).  Do something with the aString paramter
}];
于 2012-12-08T09:25:44.163 に答える
2

それはブロックを意味します-それは本質的にクロージャです(ラムダ関数、あなたがそれを何と呼んでも)-AppleのC言語への追加。この場合、オブジェクトを返し、唯一の引数としてvoid受け入れます。NSString

于 2012-12-08T09:24:48.547 に答える