iBeacon: Qual é a diferença entre didEnterRegion e didDetermineState (CLRegionStateInside)

Quero postar uma notificação quando os usuários entrarem em uma região. No entanto, estou muito confuso por causa dos mesmos dois métodos CLLocationManagerDelegate. Como devo usar os dois métodos corretamente?

Algumas pessoas dizem que o método "didDetermineState" é necessário para iniciar a observação da região se o aplicativo iniciar na região.

Obrigado,

- (void)locationManager:(CLLocationManager *)manager
         didEnterRegion:(CLRegion *)region
{
    [self sendNotification:@"didEnterRegion"];
}

- (void)locationManager:(CLLocationManager *)manager
      didDetermineState:(CLRegionState)state
              forRegion:(CLRegion *)region
{
    switch (state) {
        case CLRegionStateInside:
         [self sendNotification:@"didEnterRegion"];
            break;
        case CLRegionStateOutside:
            break;
        case CLRegionStateUnknown:
            break;
        default:
            break;
    }
} 

questionAnswers(1)

yourAnswerToTheQuestion