我的方法有一个名为completionBlock
的块。我想在我的函数中调用completionBlock()
来添加一段代码,这段代码将在执行完completionBlock之后执行。
类似于超级块的completionBlock。
当然我可以在实际区块的底部进行,但我在很多地方使用它会很麻烦。
谢谢!
答案 0 :(得分:1)
只需创建一个调用completionBlock
的新块,然后运行您的额外代码。使用新块作为完成块。
示例:
- (void)animateDownWithCompletion:(void (^)(BOOL finished))completion {
[UIView animateWithDuration:1 animations:^{
CGPoint center = self.view.center;
center.y += 10;
self.view.center = center;
} completion:^(BOOL finished) {
if (completion) {
completion(finished);
}
NSLog(@"more completion code here!");
}];
}
或使用变量:
void (^originalCompletionBlock)(BOOL finished) = ...;
void (^newCompletionBlock)(BOOL finished) = ^(BOOL finished) {
if (originalCompletionBlock) {
originalCompletionBlock(finished);
}
NSLog(@"more completion code here!");
};