在Objective-C中混合模块和委托

代理收到消息时是否可以运行代码块?

例如,如果我有一个框架,把一个void块作为参数(我们将其称为“成功”块),并使用NSURLConnection委托做这些方法参数的东西,当我收到来自网页,我怎样才能调用方法parameter passing的“成功”块?

真的很难解释,而且我显然没有任何代码,但是我可以澄清你是否有任何问题。

你绝对可以。 这就是所有的完成处理程序/callback工作。 实际上,这是一个块。

举一个简单的例子,考虑这个NSURLConnection类的方法:

+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse *response, NSData *data, NSError *connectionError))handler 

对于第三个参数,您传递一个块。 当请求全部结束,将来有一段时间,NSURLConnection会做什么? 它块。

所以,你可以做NSURLConnection正在做的一样。 你可以编写一个方法,需要一个块,你坚持块,你做了一些可能需要一些时间,然后再调用块。