请帮帮我。我有以下代码段:
NSUInteger cmdWarning = [(NSNumber*)responseObject[kCmdResponseWarning] unsignedIntegerValue];
// this time cmdWarning has value 4294967196
switch (cmdWarning) {
//I defined #define kCmdWarningSSLException -100
case kCmdWarningSSLException:
NSLog(@"error!");
break;
default:
break;
}
**Output:**
error!
我的预期结果是:记录“错误!”没有打印
为什么会这样?我该如何解决这个问题?我感谢您的支持 。提前致谢。
答案 0 :(得分:0)
问题在于kCmdWarningSSLException
值为整数: -100
当切换发生时,它试图找到值: 4294967196 (当整数-100存储在无符号整数时发生)同样的原因NSUInteger
无法存储-ve值,它是无符号整数。
要将此更改NSUInteger cmdWarning
修复为NSInteger cmdWarning =
,交换机将找到正确的案例并输出“错误!”