在 Objective-C 中混合块和代表
Mixing Blocks and Delegates in Objective-C
当委托人收到消息时是否可以运行阻止?
例如,如果我有一个将 void 块作为参数的框架(我们将其称为 "success" 块),并且使用 NSURLConnection 委托来处理这些方法参数,当我收到网页的响应时,如何调用方法参数中传递的"success"块?
这真的我很难解释,我显然没有任何代码,但如果你有任何问题我可以澄清。
你绝对可以。这就是 all 完成处理程序/回调的工作方式。事实上,这就是一个块 for.
举一个简单的例子,考虑这个 NSURLConnection class 方法:
+ (void)sendAsynchronousRequest:(NSURLRequest *)request
queue:(NSOperationQueue *)queue
completionHandler:(void (^)(NSURLResponse *response,
NSData *data,
NSError *connectionError))handler
对于第三个参数,你传递一个块。而当请求全部结束时,在未来的某个时间,NSURLConnection 做了什么?它调用 块。
因此,您可以执行与 NSURLConnection 完全相同的操作。您可以编写一个采用块的方法,抓住块,做一些可能需要一些时间的事情,然后 调用块。
当委托人收到消息时是否可以运行阻止?
例如,如果我有一个将 void 块作为参数的框架(我们将其称为 "success" 块),并且使用 NSURLConnection 委托来处理这些方法参数,当我收到网页的响应时,如何调用方法参数中传递的"success"块?
这真的我很难解释,我显然没有任何代码,但如果你有任何问题我可以澄清。
你绝对可以。这就是 all 完成处理程序/回调的工作方式。事实上,这就是一个块 for.
举一个简单的例子,考虑这个 NSURLConnection class 方法:
+ (void)sendAsynchronousRequest:(NSURLRequest *)request
queue:(NSOperationQueue *)queue
completionHandler:(void (^)(NSURLResponse *response,
NSData *data,
NSError *connectionError))handler
对于第三个参数,你传递一个块。而当请求全部结束时,在未来的某个时间,NSURLConnection 做了什么?它调用 块。
因此,您可以执行与 NSURLConnection 完全相同的操作。您可以编写一个采用块的方法,抓住块,做一些可能需要一些时间的事情,然后 调用块。