2012-04-16 28 views
11

Tôi cố gắng để tìm giao điểm của 2 số dãy, nói ví dụ ...khách quan c so sánh phạm vi giao

phạm vi A là từ 10 đến 100, phạm vi B là 60-70

có một cách dễ dàng mà không cần viết một tải trọng của câu lệnh if để tính toán giao điểm của hai dãy, vì vậy trong ví dụ này nó sẽ là 10

Cảm ơn,

Trả lời

30

Nếu bạn có hoặc làm NSRange đối tượng, cácChức năngsẽ làm điều này cho bạn. Chỉ cần chắc chắn để kiểm tra những gì nó trở lại khi không có giao lộ.

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)); 
+0

Cảm ơn cho điều này! chỉ là những gì tôi đang tìm kiếm – ChrisM

+0

Cảm ơn! Tôi đang tìm phương pháp 'NSIntersectionRange': D – VietHung

+0

' NSIntersectionRange' là liên kết bị hỏng – baskInEminence

3

Bạn có thể sử dụng phương pháp này cho mục đích đó:

NSRange NSIntersectionRange (
    NSRange range1, 
    NSRange range2 
); 

Bạn có thể tìm thấy tất cả các thông tin ở đây:

NSIntersectionRange Apple Doc

Các vấn đề liên quan