I subclassed a CLRegion
to support Polygons via overriding containsCoordinate:
to use ray casting logic instead of the original distance crunching logi
If anybody is still struggling with this then take a look here:
In my case, I had to call requestAlwaysAuthorization
just before calling startMonitoring
and it worked like charm!
locationManager.requestAlwaysAuthorization()
let currRegion = CLCircularRegion(center: CLLocationCoordinate2D(latitude: LAT, longitude: LONG, radius: 100, identifier: "MyLocation")
currRegion.notifyOnEntry = true
locationManager.startMonitoring(for: region)
Btw, I would love to thank https://shrikar.com/swift-tutorial-corelocation-and-region-monitoring-in-ios-8/ for this.