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

它表示一个——它本质上是一个闭包(lambda 函数,不管你怎么称呼它)——Apple 对 C 语言的补充。在这种情况下,它返回void并接受一个NSString对象作为它的唯一参数。

于 2012-12-08T09:24:48.547 回答