void (^)(void)
。
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion
这个东西引起了我的好奇心,但我找不到任何相关的文档。请问有人能帮忙解释一下它的用途/意义吗?
非常感谢。
void (^)(void)
。
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion
这个东西引起了我的好奇心,但我找不到任何相关的文档。请问有人能帮忙解释一下它的用途/意义吗?
非常感谢。
以下是我书中有关代码块的讨论:
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];
}];
完成块接受一个名为“done”的BOOL参数,但是它的代码中并未使用。其想法是执行动画,然后运行完成块中的代码。
熟悉块非常重要,因为它们是未来的趋势。例如,在iOS 4中,视图动画使用它们,正如我书中“基于块的视图动画”部分所解释的那样(首先阅读有关旧方法的内容,然后再阅读有关新iOS 4方法的内容)。
在iOS 5中,块更加重要了;越来越多的情况下它们不是可选项。
同时,块也是使用GCD(Grand Central Dispatch)的方式,这是迄今为止最好的执行多线程的方法。