Делегат CLLocationManager не вызывается в симуляторе ios 10 swift 3

Делегат CLLocationManager никогда не вызывается. Вот мой код:

  import UIKit
  import CoreLocation
  class LocationController: UITableViewController, CLLocationManagerDelegate {
  override func viewDidLoad() {
    super.viewDidLoad()
    if (CLLocationManager.locationServicesEnabled())
    {
        locationManager.delegate = self;
        locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
        // ask permission - NOT NECESSARY IF YOU ALREADY ADDED NSLocationAlwaysUsageDescription IT UP INFO.PLIST
        locationManager.requestAlwaysAuthorization()
        // when in use foreground
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
    }
    else{
        print("set up location access  in info.plist")
    }
   }

   private func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    print("locationmanager got called")
    let locValue:CLLocationCoordinate2D = manager.location!.coordinate
    print("locations = \(locValue.latitude) \(locValue.longitude)")
   }
  }

Настройки info.plist:

info.plist

Настройки моего симулятора:

настройка симулятора


person vrao    schedule 12.01.2017    source источник
comment
Я не вижу дубликатов в коде, есть только один func locationManager. Я не понимаю, можешь объяснить?   -  person vrao    schedule 12.01.2017
comment
Да, это ответил на вопрос. Спасибо, Нирав.   -  person vrao    schedule 12.01.2017


Ответы (1)


Вы изменили местоположение после запуска приложения? В меню: Отладка / Местоположение / ... Или измените местоположение по умолчанию (на вашем последнем скриншоте)

person Damian Dudycz    schedule 12.01.2017
comment
Параметр «Разрешить моделирование местоположения» уже установлен по умолчанию. Я никогда не устанавливал местоположение по умолчанию. Пожалуйста, дайте мне знать, какие настройки, если они неверны? - person vrao; 12.01.2017
comment
После ответа вам я вернулся, установил текущее местоположение по умолчанию и повторил попытку. Это все еще не работает. - person vrao; 12.01.2017
comment
При запуске симулятора вы можете выбрать местоположение из меню, как я сказал выше Debug/Location/... . По умолчанию это может быть ни один, поэтому вы не будете получать уведомления. - person Damian Dudycz; 12.01.2017
comment
Только что решил проблему из другой темы, которая ответила на это. Мне пришлось изменить метод делегата на: func locationManager(_ manager: CLLocationManager, didUpdateLocations location: [CLLocation]) {}, так как я использую Swift 3.0 - person vrao; 12.01.2017