Фреймворк предпочтет самый быстрый и наименее расходующий заряд батареи метод, чтобы определить местоположение. Но если у вас есть конкретная точность, которая вам нужна, вам просто нужно сообщить об этом своему CLLocationManager. Ищите свойство требуемой точности и установите его.
Кроме того, когда вы возвращаете местоположения, вы должны проверить свойства точности CLLocation, чтобы увидеть, было ли это конкретное наблюдение достаточно точным, чтобы делать то, что вы хотите делать.
Имейте в виду, что иногда ваши пользователи могут находиться в месте с хорошей башней или WiFi, но плохой видимостью GPS. Тогда вам нужно будет решить, достаточно ли высока возвращаемая вами точность или вам нужно сообщить пользователю, что эта функция невозможна.
Надеюсь, это поможет.