ผู้รับมอบสิทธิ์ CLLocationManager ไม่ได้ถูกเรียกใน iOS 10 Swift 3 Simulator [ซ้ำกัน]

ผู้รับมอบสิทธิ์ 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)


คุณเปลี่ยนสถานที่หลังจากเริ่มแอปพลิเคชันหรือไม่? ในเมนู: Debug / Location / ... หรือเปลี่ยนตำแหน่งเริ่มต้น (ในภาพหน้าจอสุดท้ายของคุณ)

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