Xamarin Forms - iOS CLLocationCoordinate2D 未正确初始化

Xamarin Forms - iOS CLLocationCoordinate2D is not initializing correctly

我正在尝试在我拥有的 iOS 自定义渲染中初始化 CLLocationCoordinate2D class,并且在构造函数中我可以传递 LatitudeLongitude (double, double) 作为参数来初始化它,但是无论我给出什么值,class 总是带有 Latitude 的默认 double 值和经度。 (0,0),这是我最初尝试初始化它的方式:

CLLocationCoordinate2D iosCoords = new CLLocationCoordinate2D(38.00000000000000, -9.00000000000000);
//This inits has (0,0)
//Note: the double has 14 numbers in the decimal part

也尝试过:

CLLocationCoordinate2D iosCoords = new CLLocationCoordinate2D();
iosCoords.Latitude = 38.00000000000000;
iosCoords.Longitude = -9.00000000000000;
//Still (0,0)

然后我认为这可能与我的小数位数有关,所以我简化了,最奇怪的事情发生了:

CLLocationCoordinate2D iosCoords = new CLLocationCoordinate2D();
iosCoords.Latitude = 38;
iosCoords.Longitude = -9;
//it gives (0,-9)

有人可以指出我做错了什么或者我应该怎么做吗?这是非常标准的,所以我不知道是什么原因造成的,也不知道我做错了什么。我正在使用真实设备进行测试,并使用真实 mac 进行托管,这是最后一段代码的屏幕截图:

注意:我多次删除了该应用程序,还从项目文件夹中删除了 binobj 文件夹,并进行了清理和清理也在解决方案上重建,我 90% 确定这不仅仅是调试器问题,因为坐标将反映到地图中,并且显示 (0,0) 处的位置。

Edit:经过一些测试,我发现 OnElementPropertyChanged 几乎在同一时间被同一个 属性 调用两次, 属性 是一个不可为空的布尔值,所以我不知道当值已经相同(默认值,false)时它是如何进入方法的,所以我只是在 属性 仅为真时进行了检查,并且它停止这样做。但是我仍然不明白我的问题的最后一部分是怎么发生的。

我发现 OnElementPropertyChanged 几乎在同一时间被同一个 属性 调用两次,似乎在 iOS 中即使 属性 以默认值,它总是首先传递给 PropertyChanged,我只需要防止对同一事件进行多次调用,它解决了我的问题,我希望有人能给出比这更好的答案