所以我在工作中遇到了一个大问题,因为我的代码中有这样的东西:
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 正在将我的负数转换为“有符号”整数,从而扼杀我的比较。
我看到了其他有关此的帖子,他们都说明了问题所在,但没有人提出任何简单的解决方案来使这种比较真正起作用。另外,我很震惊没有编译器警告,因为这些给我带来了严重的问题。