Цель c диапазон сравнения пересекается

Я пытаюсь найти пересечение двух диапазонов чисел, скажем, например...

диапазон A составляет от 10 до 100, диапазон B составляет от 60 до 70

Есть ли простой способ, не записывая нагрузку операторов if для вычисления пересечения двух диапазонов, поэтому в этом примере это будет 10.

Спасибо,

Ответ 1

Если у вас есть или сделать объекты NSRange, функция NSIntersectionRange сделает это за вас. Просто не забудьте проверить, что он возвращает, когда нет пересечения.

NSRange a = NSMakeRange(10, 90);
NSRange b = NSMakeRange(60, 10);
NSRange intersection = NSIntersectionRange(a, b);
if (intersection.length <= 0)
    NSLog(@"Ranges do not intersect");
else
    NSLog(@"Intersection = %@", NSStringFromRange(intersection));

Ответ 2

Вы можете использовать этот метод для этой цели:

NSRange NSIntersectionRange (
   NSRange range1,
   NSRange range2
);

Вы можете найти всю информацию здесь:

NSIntersectionRange Apple Doc