Objective-C:无法在交换机情况下初始化UIViewController?

时间:2011-11-22 03:15:17

标签: objective-c

Objective-C问题:无法在switch case中初始化UIViewController?

switch(anIntegerIndex) {
  case 1:
    UIViewController *vc = [[UIViewController alloc] init];
    break;
  default:
    break;
}

上面的UIViewController行中有编译错误。我正在使用iOS 5 SDK + xCode 4.2

2 个答案:

答案 0 :(得分:13)

这是switch陈述的常见C限制 -

您不能在个人case中声明局部变量,除非您将它们放在{}括号内。

最简单的方法是将UIViewController *vc;声明放在switch之前,然后将vc = [[whatever..放在case内。

答案 1 :(得分:0)

您是否尝试过创建对象但未初始化它?

UIViewController * vc = null;

switch(anIntegerIndex){   情况1:     * vc = [[UIViewController alloc] init];

等等