ios - 为什么我不能比较新数组的计数?

标签 ios objective-c if-statement nsarray

有人可以给我解释一下吗?

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/

相关文章:

ios - 无法在现有的 Xcode 项目中安装 cocoaPods

ios - 为 iOS 7 设置变量值的最佳 'init' 方法?

ios - NSOutputStream 的 hasSpaceAvailable 方法总是返回 False

iphone - 尝试从 iOS 中的另一个类中提取属性

ios - XcCode5 : How do relationships work with interface builder?

Excel if(match()) 跨多个工作表的函数返回#N/A

c - 如何检查 Windows 用户是否具有 C 中的管理员权限?

iOS - 将文件移动到视频文件夹

ios - 从第一个 ViewController 到第二个 ViewController 的图像

java - 如何将多个 if 循环结果添加到单个 JOptionPane 消息对话框?