有人可以给我解释一下吗?
if(0 <= -1)
NSLog(@"Thank god");
if([NSArray new].count <= -1)
NSLog(@"What the **** ? %i", [NSArray new].count);
if([[NSArray alloc] init].count <= -1)
NSLog(@"What the **** ? %i", [[NSArray alloc] init].count );
输出是两倍 什么鬼? 0
并且我期望没有输出,我期望计数为 0。
如果我将计数放在一个 int 中或记录它,它会输出 0(零),但 if 语句会生成 true。
最佳答案
问题是您要将无符号整数与有符号整数进行比较。
更多细节。如果将无符号整数与有符号整数进行比较,则有符号整数将被解释为无符号整数。所以你签名的值 -1 将被解释为 4294967295。
关于ios - 为什么我不能比较新数组的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18357012/