iphone - 没有输入switch语句?
<p><p>有一个我想不通的最奇怪的问题。在下面的方法中,没有输入 switch 语句。当我打印出 <code>warningAlertViewType</code> 的值时,它是正确的,但是由于某种原因 switch 语句没有激活。我以前使用过同样的方法进行切换,效果很好。 </p>
<p>有谁知道这是怎么回事?</p>
<pre><code>+ (WarningAlertView*) warningAlertViewWithType:(WarningAlertViewType)warningAlertViewType
{
WarningAlertView *warningAlertView = nil;
NSLog(@"WarningAlertViewType1: %d", warningAlertViewType);
switch (warningAlertViewType)
{
NSLog(@"Test1");
case WarningAlertViewTypeExit: warningAlertView = [ init]; break;
case WarningAlertViewTypeFacebook: warningAlertView = [ init]; break;
case WarningAlertViewTypeDelete: warningAlertView = [ init]; break;
case WarningAlertViewTypePhotoLibrary: warningAlertView = [ init]; break;
case WarningAlertViewTypeBack: warningAlertView = [ init]; break;
default: break;
}
NSLog(@"Test2");
return ;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>将您的 switch 语句更改为如下所示</p>
<pre><code>switch (warningAlertViewType) {
case WarningAlertViewTypeExit:
NSLog(@"WarningAlertViewTypeExit");
warningAlertView = [ init];
break;
case WarningAlertViewTypeFacebook:
NSLog(@"WarningAlertViewTypeFacebook");
warningAlertView = [ init];
break;
case WarningAlertViewTypeDelete:
NSLog(@"WarningAlertViewTypeDelete");
warningAlertView = [ init];
break;
case WarningAlertViewTypePhotoLibrary:
NSLog(@"WarningAlertViewTypePhotoLibrary");
warningAlertView = [ init];
break;
case WarningAlertViewTypeBack:
NSLog(@"WarningAlertViewTypeBack");
warningAlertView = [ init];
break;
default:
NSLog(@"default");
break;
}
</code></pre>
<p>我实际上是这样严格命名的粉丝。然后可以使用宏(我知道有些人讨厌)来大大缩短它。</p>
<pre><code>switch (warningAlertViewType) {
#define CASE(_type) \
case WarningAlertViewType ## _type: \
NSLog(@"WarningAlertViewType" #_type); \
warningAlertView = [ init]; \
break
CASE(Exit);
CASE(Facebook);
CASE(Delete);
CASE(PhotoLibrary);
CASE(Back);
default:
NSLog(@"default");
break;
#undef CASE
}
</code></pre></p>
<p style="font-size: 20px;">关于iphone - 没有输入switch语句?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/15913905/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/15913905/
</a>
</p>
页:
[1]