2011-11-09 13 views
0

次の警告が表示されますComparison of unsigned expression < 0 is always falseObjective-C、符号なし式<0の比較は常にfalseです。エラー?

私はそれを修正する方法がわかりません? [allWindows count] - 1がマイナスになることはありません場合は

if(topWindowIndex < 0) 

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

NSUInteger topWindowIndex = [allWindows count] - 1; 
+0

@halfdan編集していただきありがとうございますが、問題のタイトルの擬似タグは有機的に使用する必要があります。 [HOWTO:MSOの優れたタイトルを書く](http://meta.stackexchange.com/questions/10647/howto-writing-good-titles)を参照してください。 –

+0

@Bavarious、ノートとリンクのおかげで、私はそれを念頭に置いておきます。 – halfdan

答えて

9

は、テスト(およびそれが制御コード)が不要です。負の場合は、topWindowIndexを符号付きタイプ(intまたは)として宣言する必要があります。 [allWindows count]は今まで0であれば

NSUInteger topWindowIndex = [allWindows count] - 1; 

は、あなたが非常に取得します

NSUInteger numWindows = [allWindows count]; 
... 
if (numWindows < 1) ... 
2

これは危険である:

よりよい解決策は、IMO、その代わりに、直接数と使用を格納することですtopWindowIndexとして多数(ナンセンス)。上記の回答から

0

基本答え:

利用NSIntegerの代わりに、NSUInteger(符号なし)。

関連する問題