无法调用locationManager_ :: didUpdateLocations :)

问题描述

我尝试在用户启动应用时获取坐标。

我在一个独立文件中设置了locationManager代码:

UserLocation.swift

import io
import re

data = io.StringIO("""
    function foo();             
    function maybeanotherfoo(); 
    int maybemoregarbage;       

    
    product_serial = "CDE1102"; 
    unnecessary_info1 = 10;     
    unnecessary_info2 = "red"   
    product_id = 1134412;       
    unnecessary_info3 = "88"    

    product_serial = "DD1232";  
    product_id = 3345111;       
    unnecessary_info1 = "22"    
    unnecessary_info2 = "panda" 

    product_serial = "CDE1102"; 
    unnecessary_info1 = 10;     
    unnecessary_info2 = "red"   
    unnecessary_info3 = "bear"  
    unnecessary_info4 = 119     
    product_id = 1112331;       
    unnecessary_info5 = "jj"    
""")

objects = []

current_object = {}
for line in data:
    line = line.strip()  # Remove leading and trailing whitespace
    m = re.match(r'^(product_id|product_serial)\s*=\s*(\d+|"(?:.+?)");?$',line)

    if m:
        key,value = m.groups()
        current_object[key] = value.strip('"')
        if len(current_object) == 2:  # Got the two keys we want,ship the object
            objects.append(current_object)
            current_object = {}

print(objects)

然后,我在 AppDelegate.swift import Foundation import CoreLocation class UserLocation: NSObject,CLLocationManagerDelegate { var userCurrentLocation: CLLocationCoordinate2D? let locationManager = CLLocationManager() func locationSetup() { locationManager.requestWhenInUseAuthorization() if CLLocationManager.authorizationStatus() != CLAuthorizationStatus.authorizedWhenInUse { print("authorization error") return } locationManager.distanceFilter = 300 locationManager.desiredAccuracy = kCLLocationAccuracyBest locationManager.delegate = self locationManager.startUpdatingLocation() print("startUpdatingLocation") if CLLocationManager.locationServicesEnabled() { print("locationServicesEnabled") } } func locationManager(_ manager: CLLocationManager,didUpdateLocations locations: [CLLocation]) { print("locationManager getting start") if let location = locations.last { self.userCurrentLocation = CLLocationCoordinate2D(latitude: location.coordinate.latitude,longitude: location.coordinate.longitude) print("print location in locationManager: \(String(describing: userCurrentLocation?.latitude))") locationManager.stopUpdatingLocation() } } func locationManager(_ manager: CLLocationManager,didFinishDeferredUpdatesWithError error: Error?) { print(error?.localizedDescription as Any) return } } 中调用函数,如下所示:

application(_::didFinishLaunchingWithOptions:)

但是,仅成功调用func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let getUserLocation = UserLocation() getUserLocation.locationSetup() } 函数,从未调用相关函数locationManager(_ :: didUpdateLocations :)。我将locationSetup()的第一行放在了print("locationManager getting start")中,从未打印出来

顺便说一句,在info.plist中,我已经设置了“隐私权-使用时的位置,用法说明”。

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)