I subclassed a CLRegion to support Polygons via overriding containsCoordinate: to use ray casting logic instead of the original distance crunching logi
CLRegion
containsCoordinate:
Also: if you're testing with iBeacons, you can't use the iOS simulator.