<分区>
<分区>
是否可以在代理收到消息时运行 block ?
例如,如果我有一个将 void block 作为参数的框架(我们称它为“成功” block ),并且正在使用 NSURLConnection 委托(delegate)来处理这些方法参数,当我收到一个网页响应,如何调用方法参数中传递的“成功” block ?
这对我来说真的很难解释,显然我没有这方面的任何代码,但如果您有任何问题,我可以澄清。
最佳答案
你绝对可以。这就是所有 完成处理程序/回调的工作方式。事实上,这就是 block 的作用。
举一个简单的例子,考虑这个 NSURLConnection 类方法:
+ (void)sendAsynchronousRequest:(NSURLRequest *)request
queue:(NSOperationQueue *)queue
completionHandler:(void (^)(NSURLResponse *response,
NSData *data,
NSError *connectionError))handler
对于第三个参数,您传递一个 block 。而当请求全部结束时,在未来的某个时间,NSURLConnection 做了什么?它调用 block 。
因此,您可以执行与 NSURLConnection 完全相同的操作。您可以编写一个接受一个 block 的方法,您持有该 block ,您做一些可能需要一些时间的事情,然后稍后您调用该 block 。
关于ios - 在 Objective-C 中混合 block 和委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806516/