(iOS)使用goto时跳转绕过保留变量的初始化

时间:2015-12-30 09:32:18

标签: ios xcode automatic-ref-counting goto

在我的ARC iOS项目中使用goto时出现此编译器错误。

  

无法从此goto语句跳转到其标签。跳过旁路   初始化保留变量

我知道goto一般很糟糕但是......请告诉我如何解决它。代码如下,

//some process
NSArray *current = ... ;
if (current.count ==0) goto cleanup;
//proceed to next
if (processed failed) goto cleanup;
//further process

cleanup:
//clean up codes

1 个答案:

答案 0 :(得分:4)

我终于明白了!实际上警告说清楚了,"跳过绕过保留变量的初始化"所以在下一节

  

//继续下一节我宣布&初始化一些对象!

我的代码/问题与c99 goto past initialization

基本相同

解决方案很简单,只需添加一个{}块,如下所述[{3}}

对于那些想知道为什么我仍然需要goto的人,我认为这解释了它Why can't variables be declared in a switch statement?,特别是"干净地退出一个函数",点击此处查看示例 Is it ever advantageous to use 'goto' in a language that supports loops and functions? If so, why?

没有goto主线代码深入嵌套条件(当然我们也可以引入一个辅助函数来处理它)。