2012-04-16 82 views
11

我試圖找到的2號的交叉點範圍,例如說...目標C比較範圍相交

範圍A爲從10到100, 範圍B爲60〜70

有沒有寫的if語句來計算兩個範圍的交叉負載的簡單的方法,所以在此例中是10

感謝,

回答

30

如果你有或作出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)); 
+0

感謝這個!只是我在找什麼 – ChrisM 2012-04-16 11:12:29

+0

謝謝!我正在尋找'NSIntersectionRange'方法:D – VietHung 2014-02-21 04:58:42

+0

'NSIntersectionRange'是一個斷開的鏈接 – baskInEminence 2017-12-03 19:57:43

3

您可以使用此方法用於此目的:

NSRange NSIntersectionRange (
    NSRange range1, 
    NSRange range2 
); 

你可以在這裏找到所有信息:

NSIntersectionRange Apple Doc