我的方法有一个名为completionBlock
. 我想在我的函数中调用completionBlock()
添加一段代码,该代码将在执行完此完成块后执行。
类似于超级块的完成块。
当然,我可以在实际块的底部进行,但是我在很多地方都使用它,这会很麻烦。
谢谢!
我的方法有一个名为completionBlock
. 我想在我的函数中调用completionBlock()
添加一段代码,该代码将在执行完此完成块后执行。
类似于超级块的完成块。
当然,我可以在实际块的底部进行,但是我在很多地方都使用它,这会很麻烦。
谢谢!
只需创建一个调用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!");
};