2011-08-09 36 views
2

我得到的无符号表达的警示比较> = 0始终是真实的比较始终是真实的

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

所以我不知道这听起来很愚蠢,或不,但我应该删除那个表达,然后>

谢谢!

+0

来吧,我是第一个回答的人! %) –

+0

是的,你明白了! –

回答

10

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

5

是 - 由于长度返回一个无符号整数,它将始终为'大于或等于0'。您可以删除条件的status.length> = 0部分。

3

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

否则,您可以删除该条件,如其他人所述。

0

你必须有书面的,可永远不会被执行

我有这个,因为我不喜欢这样的声明..

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

文本框的文本长度不能小于0 。它必须至少为0.

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