如何使用委托完成块

时间:2016-01-21 00:11:20

标签: ios objective-c delegates objective-c-blocks

我有A类被设置为B类的委托。它当前是如何工作的,A类的方法使用B类的实例来调用方法。在B的方法执行完毕后,它调用在A中实现的委托方法。

想要的是让A类的方法包含一个成功完成块,这样当B的方法执行完毕时,我可以从A类中的相同方法知道B的方法被成功执行。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

在A类中,将块存储为属性。在B类的委托方法(由A类实现)中,您可以通过属性调用该块。

@property (nonatomic, copy) void (^completion)(BOOL);

- (void)classAMethod:(void (^)(BOOL))completion {
    self.completion = completion;
    [classB method];
}

- (void)classBDelegateMethod:(BOOL)result {
    if(self.completion) {  
        self.completion(result);
    }
}