gpt4 book ai didi

iphone - 没有输入 Switch 语句?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:43:46 24 4
gpt4 key购买 nike

有一个我想不通的最奇怪的问题。在下面的方法中,没有输入 switch 语句。当我打印出 warningAlertViewType 的值时,它是正确的,但是 switch 语句由于某种原因没有激活。我以前使用过相同的方法进行切换,并且效果很好。

有谁知道是什么原因导致的?

+ (WarningAlertView*) warningAlertViewWithType:(WarningAlertViewType)warningAlertViewType
{
WarningAlertView *warningAlertView = nil;
NSLog(@"WarningAlertViewType1: %d", warningAlertViewType);
switch (warningAlertViewType)
{
NSLog(@"Test1");
case WarningAlertViewTypeExit: warningAlertView = [[ExitWarningAlertView alloc] init]; break;
case WarningAlertViewTypeFacebook: warningAlertView = [[FacebookWarningAlertView alloc] init]; break;
case WarningAlertViewTypeDelete: warningAlertView = [[DeleteWarningAlertView alloc] init]; break;
case WarningAlertViewTypePhotoLibrary: warningAlertView = [[PhotoLibraryWarningAlertView alloc] init]; break;
case WarningAlertViewTypeBack: warningAlertView = [[BackWarningAlertView alloc] init]; break;
default: break;
}
NSLog(@"Test2");
return [warningAlertView autorelease];
}

最佳答案

将您的 switch 语句更改为如下所示

switch (warningAlertViewType) {

case WarningAlertViewTypeExit:
NSLog(@"WarningAlertViewTypeExit");
warningAlertView = [[ExitWarningAlertView alloc] init];
break;

case WarningAlertViewTypeFacebook:
NSLog(@"WarningAlertViewTypeFacebook");
warningAlertView = [[FacebookWarningAlertView alloc] init];
break;

case WarningAlertViewTypeDelete:
NSLog(@"WarningAlertViewTypeDelete");
warningAlertView = [[DeleteWarningAlertView alloc] init];
break;

case WarningAlertViewTypePhotoLibrary:
NSLog(@"WarningAlertViewTypePhotoLibrary");
warningAlertView = [[PhotoLibraryWarningAlertView alloc] init];
break;

case WarningAlertViewTypeBack:
NSLog(@"WarningAlertViewTypeBack");
warningAlertView = [[BackWarningAlertView alloc] init];
break;

default:
NSLog(@"default");
break;
}

我实际上是这样严格命名的粉丝。然后可以使用宏(我知道有些人讨厌)来大大缩短这一时间。

switch (warningAlertViewType) {

#define CASE(_type) \
case WarningAlertViewType ## _type: \
NSLog(@"WarningAlertViewType" #_type); \
warningAlertView = [[_type ## WarningAlertView alloc] init]; \
break

CASE(Exit);
CASE(Facebook);
CASE(Delete);
CASE(PhotoLibrary);
CASE(Back);

default:
NSLog(@"default");
break;

#undef CASE

}

关于iphone - 没有输入 Switch 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com