Обнаружение, если NSNumber находится между 0 и 255 - PullRequest
9 голосов
/ 22 августа 2011

Я пытаюсь определить, находится ли NSNumber между 0 и 255 или нет.Всякий раз, когда я запускаю приложение, я получаю предупреждение о том, что мой номер больше 255, даже если это не так.У меня нет этой проблемы с 0.

if (redValue < 0) {

    NSLog(@"Red value is less than 0");

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your number must be greater than 0." message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alert show];
    [alert release];


} else if (redValue > 255) {

    NSLog(@"Red value is greater than 255");

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your number must be less than 255." message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alert show];
    [alert release];

}

Кроме того, я получаю это предупреждение в строке "else if (redValue> 255)": Упорядоченное сравнение между указанным и целым числом ('NSNumber *'и' int ') , поэтому я предполагаю, что мне нужно преобразовать этот NSNumber в целое число?

Ответы [ 4 ]

27 голосов
/ 22 августа 2011

Должно быть:

if([redValue intValue] < 0) {
...

if([redValue intValue] > 255) {
...

Предполагая, что это int.Если это не так, перейдите к NSNumber Class Reference , посмотрите в разделе "Доступ к числовым значениям" и замените intValue на соответствующую вещь.

3 голосов
/ 22 августа 2011

используйте intValue, чтобы получить число в виде целого числа:

[redValue intValue]
1 голос
/ 22 августа 2011

попробуйте

[redValue intValue] > 255
1 голос
/ 22 августа 2011
if (redValue.intValue >255)
{
    // it's greater than 255
}
...