NSRange intersections
Anonymous
class IntersectionRange { let range1 : NSRange let range2 : NSRange init(first: NSRange, second: NSRange) { range1 = first range2 = second } func intersection() -> NSRange? { let min1 = range1.location let max1 = range1.location + range1.length let min2 = range2.location let max2 = range2.location + range2.length if max2 < min1 || max1 < min2 { return nil } else { let minRange = max(min1, min2) let maxRange = min(max1, max2) return NSRange(location: minRange, length: maxRange - minRange) } } } let intersectionRange = IntersectionRange(first: NSRange(location: 5, length: 17), second: NSRange(location: 10, length: 3)) let intersection = intersectionRange.intersection()
Check out your Company Bowl for anonymous work chats.