diferencia entre didEnterRegion y didRangeBeacons

¿Cuál es la diferencia exacta entre didEnterRegion y didRangeBeacons en términos de caso de uso me refiero a cuando debería implementar didEnterRegion / didExitRegion y cuándo debo implementar didRangeBeacons?

¿Cuál es la funcionalidad exacta del método de cada delegado? De la documentation de Apple no está muy claro.

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { } 

Y

 - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { } 

didEnterRegion se llamará una vez cuando cruce el umbral de la región (es decir, detecte la baliza). Una vez que salga de la región (es decir, la baliza ya no estará visible), se llamará a didEnterRegion y luego se volverá a llamar a didEnterRegion si vuelve a ingresar a la región.

didRangeBeacons se llama repetidamente mientras que las balizas que se están didRangeBeacons son visibles, lo que le proporciona información de proximidad actualizada.

Una estrategia común es supervisar las regiones de baliza y, una vez que se llamó a didEnterRegion , comience a didEnterRegion esa baliza para actualizaciones, deteniendo el range una vez que se llamó didExitRegion .

Vea también: la guía de progtwigción de location

Una CLBeaconRegion definida con solo un UUID de proximidad, o una UUID de proximidad y una Identificación mayor puede corresponder a múltiples balizas físicas en su implementación (llamaré a estas 'regiones parcialmente calificadas' aquí).

didEnterRegion notifica cuándo el dispositivo primero ingresa a la proximidad de una o más balizas que coinciden con CLBeaconRegion , pero no detalla qué balizas coincidentes están cerca. didExitRegion solo se llama cuando todas las balizas coincidentes se salen del range.

Hay dos usos para el range de balizas una vez que se ha ingresado una región:

  1. Para get detalles de las balizas cercanas que corresponden a una región parcialmente calificada.

Esta información se proporciona a didRangeBeacons como una matriz de objects CLBeacon . Tenga en count que el set de balizas puede cambiar con el time sin que el dispositivo abandone la región y reciba una región de didExitRegion (siempre que al less una baliza coincidente esté dentro del scope, el dispositivo se encuentre en la región). Esto significa que las aplicaciones que usan regiones parcialmente calificadas pero que aún se preocupan por las balizas específicas necesitan procesar las repetidas invocaciones de didRangeBeacons .

  1. Para get la información de proximidad proporcionada en los objects CLBeacon .

Esto puede ser relevante incluso si se usan regiones completamente calificadas. Como la proximidad cambia cuando el dispositivo se mueve dentro de la región, las invocaciones repetidas de didRangeBeacons deben procesarse.