0

次の警告が表示されComparison of unsigned expression < 0 is always falseます。

修正方法がわかりませんか?

if(topWindowIndex < 0)

それは次のように定義されています...

NSUInteger topWindowIndex = [allWindows count] - 1;
4

3 に答える 3

9

決して否定できない場合[allWindows count] - 1は、テスト(およびそれが制御するコード)は不要です。負の値になる可能性がある場合はtopWindowIndex、符号付きタイプ(intまたはNSInteger)として宣言する必要があります。

より良い解決策であるIMOは、カウントを直接保存し、代わりにそれを使用することです。

NSUInteger numWindows = [allWindows count];
...
if (numWindows < 1) ...
于 2011-11-09T22:15:00.980 に答える
2

これは危険です

NSUInteger topWindowIndex = [allWindows count] - 1;

が0の場合[allWindows count]、topWindowIndexとして非常に大きな数(ナンセンス)を取得します。

于 2011-11-09T22:20:17.150 に答える
0

上記の回答からの基本的な回答:

(符号なし)NSIntegerの代わりに使用します。NSUInteger

于 2014-09-29T19:59:29.207 に答える