Итак, я столкнулся с огромной проблемой на работе, потому что в моем коде было что-то вроде этого:
int foo = -1;
NSArray *bar = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
if (foo > [bar count]){
NSLog(@"Wow, that messed up.");
} else {
NSLog(@"Rock on!");
}
Как вы, наверное, уже знаете, что я размещаю это, вывод:
"Ого, это испортилось".
Из того, что я собираю, цель C преобразует мое отрицательное число в "подписанный" int и, таким образом, убивает мое сравнение.
Я видел другие сообщения об этом, и все они заявили, в чем проблема, но ни один из них не предложил каких-либо простых решений, чтобы получить это сравнение для фактической работы. Кроме того, я в шоке от того, что предупреждений компилятора нет, так как это вызывает серьезные проблемы для меня.