コードに次のようなものがあったため、仕事で大きな問題に遭遇しました。
int foo = -1;
NSArray *bar = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
if (foo > [bar count]){
NSLog(@"Wow, that's messed up.");
} else {
NSLog(@"Rock on!");
}
おそらく私がこれを投稿することですでに知っているように、出力は次のとおりです。
「うわー、それはめちゃくちゃです。」
私が収集したものから、目的 C は負の数を「符号付き」int に変換しているため、比較を殺しています。
これに関する他の投稿を見ましたが、それらはすべて問題が何であるかを述べていましたが、この比較を実際に機能させるための簡単な解決策を提案したものはありませんでした. また、深刻な問題を引き起こしているため、コンパイラの警告がないことにショックを受けました。