为什么我不能比较新阵列的数量?

Sjo*_*ors 3 if-statement objective-c nsarray ios

谁可以给我解释一下这个 ?

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 );
Run Code Online (Sandbox Code Playgroud)

输出是两次What the **** ? 0,我期待没有输出我期望有0作为计数.

如果我将计数放入int或记录它,则输出0(零),但if语句在此处生成true.

pek*_*eko 6

问题是您是将无符号整数与有符号整数进行比较.

更多细节.如果将无符号整数与有符号整数进行比较,则有符号整数将被解释为无符号整数.所以你签名的值-1将被解释为4294967295.