Есть ли лучший способ выполнить эту логику в одну строку?
- (BOOL)isValueInRange { return ((level.integerValue > 100) || (level.integerValue < 0)) ? NO : YES; }
Не думаю, что вы избежите необходимости повторять level.integerValue дважды.
level.integerValue
return !((level.integerValue > 100) || (level.integerValue < 0))
Вы также можете использовать NSLocationInRange:
NSLocationInRange
NSLocationInRange(level.integerValue, NSMakeRange(0, 100)
Вы можете сделать:
return level.integerValue >= 0 && level.integerValue <= 100;
Это вернет true, если значение находится в диапазоне, и false, если это не так.