2015-08-16 14 views
-1

对不起,如果这个问题已被询问。我找不到好的关键字来回答...在完成块参数中添加代码

在完成块中,是否可以在块变量之前或之后添加代码?

我愿做这样的事情:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion { 
    [super presentViewController:viewControllerToPresent animated:flag completion:^{ 
     //some code I add here 
     completion(); 
    }]; 
} 

我有一个EXC_BAD_ACCESS错误,当我尝试这样做。

编辑:问题是由于使用“完成()”而不检查它是否为零或不是。

+0

哦,我想我明白了。也许我必须检查“完成”不是第一位?如果我这样做,它正在工作? – Tulleb

+1

你的问题不是很清楚。 “在完成块变量中添加代码”是什么意思? – rmaddy

+2

是@Tulleb,你必须在调用块之前检查零。 – johnpatrickmorgan

回答

1

当然,你可以添加代码,你有你的评论。您的崩溃是由其他问题引起的,例如未初始化的变量,或者您正在使用超出范围的局部变量。