UIViewController dismissViewControllerAnimated完成参数类型语法

And*_*ill 6 objective-c uiviewcontroller ios5

void (^)(void)UIViewController方法实现的'completion'参数类型的语法:

- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion
Run Code Online (Sandbox Code Playgroud)

激起了我的好奇心,我一直无法找到任何文件.请有人帮忙解释一下其目的/含义吗?

提前谢谢了.

mat*_*att 12

这是我书中块的讨论:

http://www.apeth.com/iOSBook/ch03.html#_blocks

那里有一个例子,但是这里有一个更接近您所询问的事情的例子:

[self transitionFromViewController:fromvc
                  toViewController:tovc
                          duration:0.4
                           options:UIViewAnimationOptionTransitionFlipFromLeft
                        animations:nil
                        completion:^(BOOL done){
                            [tovc didMoveToParentViewController:self];
                            [fromvc removeFromParentViewController];
                        }];
Run Code Online (Sandbox Code Playgroud)

完成块采用一个参数,一个名为"done"的BOOL,但其代码不使用它.想法是执行动画,然后运行完成块中的代码.

对块体感到满意是非常重要的,因为它们是未来的方式.例如,iOS 4中的视图动画使用它们,如我书中"基于块的视图动画"部分所述(首先阅读旧方法,然后阅读有关新iOS 4的方法):

http://www.apeth.com/iOSBook/ch17.html#_view_animation

在iOS 5中,块更为重要; 越来越多的情况下它们不是可选的.

块也是使用GCD(大中央调度)的方式,这是进行多线程的最佳方式.