gpt4 book ai didi

ios - 为什么CLLocationManager不提供要处理的事件?

转载 作者:行者123 更新时间:2023-12-01 22:26:49 26 4
gpt4 key购买 nike

如果仅在UIThread上创建CLLocationManager实例,则将触发LocationUpdated事件。
为什么会这样?
Xamarin和Apple文档中没有任何线索表明CLLocationManager必须是UIThread上的created

一些代码询问locationManager.RequestWhenInUseAuthorization();
NSLocationWhenInUseUsageDescription在Info.plist中设置

private void CreateLocationManagerWorkingOption () {
ExecuteOnMainThread (() => {
locationManager = new CLLocationManager ();
});
locationManager.LocationsUpdated += (object sender, CLLocationsUpdatedEventArgs e) => {
OnLocationChanged (locationManager,e.Locations [e.Locations.Length - 1]);
};
}

private void CreateLocationManagerNotWorkingOption () {
ExecuteOnSomeThread(()=> {
locationManager = new CLLocationManager ();
});
locationManager.LocationsUpdated += (object sender, CLLocationsUpdatedEventArgs e) => {
OnLocationChanged (locationManager,e.Locations [e.Locations.Length - 1]);
};
}

private void StartTrackingImpl() {
ExecuteOnMainThread (() => locationManager?.StartUpdatingLocation ());
}

最佳答案

我想我知道为什么。
首先,我遇到了同样的问题。我无法在三个不同的设备上运行LocationUpdates。我已经测试了很多,但是CLLocationManager事件仍然没有触发。我遇到了这个问题,并最终弄清了为什么没有在我的设备上触发事件。
我在threadPool中实例化了CLLoationManager。 ThreadPools由.NET管理。因此,我实例化CLLoationManager的线程在一段时间后完成,因此没有地方可以触发事件。
希望我的回答有帮助!

关于ios - 为什么CLLocationManager不提供要处理的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41893131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com