无符号表达式> = 0的比较始终为真

时间:2011-08-09 01:45:18

标签: ios warnings

我收到警告无符号表达式的比较> = 0始终为真

在这一行:return status != nil && status.length >= 0 && status.length <= 140;

所以我不确定这听起来有多愚蠢,但是我应该删除那个表达式然后&gt;

谢谢!

4 个答案:

答案 0 :(得分:10)

仅删除check的这一部分 - status.length&gt; = 0.实际上,这部分检查将由编译器优化并自动删除,因为它没有意义。从代码中删除它将帮助您摆脱此警告。

答案 1 :(得分:5)

是 - 因为length返回无符号整数,所以它总是'大于或等于0'。您可以删除条件的status.length&gt; = 0部分。

答案 2 :(得分:3)

如果您想确保没有零长度字符串,那么您应该使用条件status.length > 0

否则,您可以像其他人提到的那样删除该条件。

答案 3 :(得分:0)

您必须撰写一份永远无法执行的声明

我有这个,因为我做了这样的事情......

 if (textField.text.length < 0) //wrong logic 

textField的文本长度永远不会小于0。它必须至少为0。

每当编译器看到这种永远不可能(执行)的逻辑错误。它会产生这种警告。如果有人有这个错误,那么请检查你的逻辑。