2つの整数を比較しようとしています。1つはの、もう1つrow
はNSIndexPath
のcount
ですNSArray
。はrow
0に等しく、は2に等しい。次のようなステートメントにcount
それらがあります。if
if([self.selectedSetpoint row] < ([self.theCategories count]-3))
{
//Do true stuff
}
したがって、私の数学では、if
比較しているので、ステートメントは偽であるはずです0 < -1
。しかし、私はこのステートメントを真として通し続けており、内部のブロックif
が実行されています。NSLog
間違った値を取得しているだけではないことを確認するために、値を試してみました。if
私はステートメントの前にこれを正しく配置しました:
NSLog(@"%d",[self.selectedSetpoint row]);
NSLog(@"%d",[self.theCategories count]-3);
NSLog(@"%@",[self.selectedSetpoint row] < ([self.theCategories count]-3)?@"Yes":@"No");
コンソールでこれを取得しました:
2012-07-17 08:58:46.061 App[61345:11603] 0
2012-07-17 08:58:46.061 App[61345:11603] -1
2012-07-17 08:58:46.062 App[61345:11603] Yes
この比較が真実である理由は何ですか?整数の比較について何か誤解していますか?
これのすぐ上に、比較する別のifステートメントがあります
[self.selectedSetpoint row]<([self.theCategories count]-2)
これは0 < 0
、であり、正常に動作します(returns NO
)。ですから、私が得ていない負の整数の使用に問題があるように感じます。
前もって感謝します。