最佳答案
我想写一个类似的方法:
+(void)myMethodWithView:(UIView *)exampleView completion:(void (^)(BOOL finished))completion;
我基本上已经把苹果的一个 UIView
类方法的语法剥离出来了:
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;
并且希望它被这样使用:
[myFoo myMethodWithView:self.view completion:^(BOOL finished){
NSLog(@"call back success");
}];
我的问题是如何实现这一点?如果有人能给我指出正确的文档,那就太好了,一个非常基本的示例将会非常受欢迎(或者在 Stack Overflow 上有一个类似的答案——我找不到)。我对代表团的了解还不够多,无法确定这种做法是否正确!
我已经在实现文件中提供了一个粗略的例子,说明我希望它是什么样的,但是由于我找不到信息,所以只能靠猜测。
+ (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion {
// do stuff
if (completion) {
// what sort of syntax goes here? If I've constructed this correctly!
}
}