我正在第一次通过位置服务工作,所有内容似乎都正常工作,因为它正确找到了我的位置,但我无法提取坐标。
文档声明CLLocation具有“Coordinates”属性,编译器对这段代码感到满意。但是,在运行时,CLLocation仅显示返回字符串描述。
我启动了位置管理器
_locationManager = new CLLocationManager ();
_locationManager.DesiredAccuracy = 1000;
// handle the updated location method and update the UI
_locationManager.LocationsUpdated += (object sender, CLLocationsUpdatedEventArgs e) => {
UpdateLocation (e.Locations [e.Locations.Length - 1], _destinationLatitude, _destinationLongitude);
};
if (CLLocationManager.LocationServicesEnabled)
_locationManager.StartUpdatingLocation ();
事件正确触发
static public void UpdateLocation (CLLocation current, Double destinationLat, Double destinationLng)
{
//Make the start pairing
string start = current.Coordinate.Latitude.ToString() + "," + current.Coordinate.Longitude.ToString();
//Make the destination pairing
string destination = destinationLat.ToString() + "," + destinationLng.ToString();
}
然而,应用程序崩溃了。在断点上捕获它我看到以下内容只显示包含。
的描述属性Description "<+50.58198902,-3.67661728> +/- 65.00m (speed -1.00 mps / course -1.00) @ 25/07/2013 13:11:28 British…" string
我显然可以从这个文本字段中提取lat / lng,但我觉得我不应该这样做。任何帮助表示赞赏。
答案 0 :(得分:0)
我将完全相同的代码移动到不同的控制器中,并且工作正常。两个控制器之间的唯一区别是失败的控制器使用单触控对话框反射api来绑定屏幕元素。我不明白为什么这会有所不同,但这是两个控制器之间的唯一区别。现在一切正常,如果我有时间,我会尝试用较小的样本重现。