2015-08-30 2 views
0

Привет Я извлекаю значение NSNumber из массива (рейтинг, например, 4.3), и тогда вам нужно проверить это значение, чтобы затем назначить звездообразные изображения.Objective C NSNumbers in if statements

Однако, когда я пишу, если заявление, я получаю ошибки «Прогнозное Выражение»

Вот код:

if (rating >=1 && <2) { 
     return [UIImage imageNamed:@"1starimage"]; 
    }else if (rating >=2 && <3){ 
     return [UIImage imageNamed:@"2starimage"]; 
    } 

Спасибо за какие-либо объяснения о том, как я могу это сделать, не вызывая ошибки.

+2

'rating.floatValue> = 1 && rating.floatValue <2', если' rating' является 'NSNumber'. Кроме того, вам нужно поместить var каждый раз для каждого теста (для> = и для <2), ничто не говорит, что это тот же самый var, который был протестирован. – Larme

ответ

0

В if заявления с несколькими значениями тестов, вы должны обеспечить полное выражение для каждого сравнения.

Так что в вашем случае, вы должны сделать следующее:

if ([rating floatValue] >= 1 && [rating floatValue] < 2) { 
    return [UIImage imageNamed:@"1starimage"]; 
} else if ([rating floatValue] >= 2 && [rating floatValue] < 3){ 
    return [UIImage imageNamed:@"2starimage"]; 
} 
+0

Спасибо, что решили мою проблему, и я многому научился :-) – Kitcc

0

Левой стороны второго сравнения отсутствует Это должно быть if (rating.floatValue >=1 && rating.floatValue<2)