我猜我的语法是关闭的,但我似乎无法弄清楚这一点,因为我是新的块。我有这个自定义方法:
-(void)animateViewConstraintChange: (void(^)(void))completionHandler;
这个方法看起来像这样:
-(void)animateViewConstraintChange:(void(^)(void))completionHandler
{
[[self view]setNeedsUpdateConstraints];
[UIView animateWithDuration:0.6
animations:^{
[[self view]layoutIfNeeded];
} completion:^(BOOL finished){
completionHandler;
}];
}
它编译并运行,但是当我调用此方法并实际为完成处理程序放入某些内容时,该代码永远不会被调用。
[self animateViewConstraintChange:^{
[orderedViewControllers removeObject:[self middleViewController]];
[[[self middleViewController] view] removeFromSuperview];
[[self middleViewController] removeFromParentViewController];
_middleViewController = nil;
[[self view]setNeedsUpdateConstraints];
}];
因此,在上述代码的情况下, animateViewConstraintChange 被调用,但块中的代码没有。
此外,编译器在 animateViewConstraintChange 方法中给了我一个错误
completionHandler;
说,“未使用的表达结果”。
感谢您的关注。