У меня была такая же проблема, когда она не прекращала обновление местоположения. Я не пытался нигде делегата, потому что проблема заключалась в том, что в моем методе «locationManager: didUpdateToLocation: fromLocation:» был вызван другой метод, прежде чем фактически остановить обновление местоположения, я назвал свой собственный метод (загрузка объектов с сервера). Это было нормально, пока мне не пришлось загружать слишком много. Я предполагаю, что дело в том, что он пытается загрузить их слишком долго, чтобы «didupdatelocation» вызывался снова и снова.
Я думал, что из двух решений для этого (для меня по крайней мере):
- ли материал после остановки менеджера. - По какой-то причине это не сработало, у меня все еще было несколько вызовов.
- Сделайте асинхронно. - Мне это показалось хорошо.
Надеюсь, это поможет.
Действительно ли 'locationManager' является экземпляром CLLocationManager или возможно, что это' nil'? Пожалуйста, проверьте с помощью отладчика или 'NSLog (@"% @ ", locationManager);'. Потому что, если это 'nil', тогда вы не получите ошибку, но просто ничего не произойдет. – DarkDust
Спасибо DarkDust - я нашел решения, у меня появилась идея из вашего комментария .... –
Где я звонил менеджеру местоположения, значения были NULL, и из-за этого я не смог остановить обновление служб местоположения, я решил, что и вызвал эту функцию в методе didUpdateToLocation: и теперь работает точно. –