我收到以下警告Comparison of unsigned expression < 0 is always false
。
我不确定如何修复它?
if(topWindowIndex < 0)
它被定义为......
NSUInteger topWindowIndex = [allWindows count] - 1;
答案 0 :(得分:9)
如果[allWindows count] - 1
永远不会为负数,则不需要测试(及其控制的代码)。如果它可能是否定的,则应将topWindowIndex
声明为签名类型(int
或NSInteger
)。
一个更好的解决方案,IMO,是直接存储计数并改为使用它:
NSUInteger numWindows = [allWindows count];
...
if (numWindows < 1) ...
答案 1 :(得分:2)
这很危险
NSUInteger topWindowIndex = [allWindows count] - 1;
如果[allWindows count]
为0,则会得到一个非常大的数字(废话)作为topWindowIndex。
答案 2 :(得分:0)
以上答案的基本答案:
使用NSInteger
代替NSUInteger
(无符号)。