我想为某个类创建一个完成处理程序,而不是启动该类的主代码并等待委托回调。我已经阅读了Apple文档,但他们似乎并未给出如何直接实现此类示例的很好示例。
您需要像对待变量一样对待完成块。该方法将接受一个块作为其参数的一部分,然后将其存储以备后用。
- (void)myMethodWithCompletionHandler:(void (^)(id, NSError*))handler;
您可以键入defblock类型以便于阅读:
typedef void (^CompletionBlock)(id, NSError*);
然后将您的块存储为实例变量:
在您的@interface中: CompletionBlock _block;
在myMethod .. _block = [handler copy]
然后,当您希望完成块执行时,只需像常规块一样调用它即可:
_block(myData, error);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句