objective-c - 0 < 0 -1 是真的吗?

标签 objective-c xcode cocoa

我知道类型转换出了问题,从我的角度来看,这确实很陈旧:

月份是 NSArray 所以我那里没有元素: 月数 == 0

这并不像它应该出现的那样工作 0 < 0 -1 是真的吗?

(0 < months.count -1) == true

但这工作正常

(0 < (int)months.count -1) == false

不明白为什么?

最佳答案

count 返回 NSUInteger,它是无符号的,因此 months.count -1 是一个无符号表达式,并且计算结果为正数,因此大于 0。

当您将其转换为 int 时,表达式 (int)months.count -1 被计算为有符号,因此等于 -1,小于 0。

关于objective-c - 0 < 0 -1 是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320999/

相关文章:

macos - 将变量或字符串从 OS X Cocoa 应用程序传递到 Applescript

cocoa - 为什么我的 NSTableView 中的图像淡出?

ios - 发现启动 URL (iOS)

ios - 前景和背景,哪些应用程序在哪里?

ios - 如何在 Xcode 中显示模拟按钮?

ios - Spritekit 逐帧动画/性能问题

ios - 视网膜显示中 UIView 位置变化

objective-c - Objective-C - 无法解决 @property/@synthesize setter 和 getter?

iphone - 在 iOS 上将图像分享到 Instagram

swift - keyEquivalent 与 Swift 中的非字母数字字符