Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging Xamarin Forms-iOS CLLocationCoordinate2D未正确初始化_Debugging_Xamarin_Xamarin.forms_Xamarin.ios_Location - Fatal编程技术网

Debugging Xamarin Forms-iOS CLLocationCoordinate2D未正确初始化

Debugging Xamarin Forms-iOS CLLocationCoordinate2D未正确初始化,debugging,xamarin,xamarin.forms,xamarin.ios,location,Debugging,Xamarin,Xamarin.forms,Xamarin.ios,Location,我正在尝试在我拥有的iOS自定义渲染中初始化一个类,在构造函数中,我可以传递纬度和经度(double,double)作为参数来初始化它,但是无论我给出什么值,该类始终带有纬度和经度的默认双精度值。(0,0),下面是我最初尝试初始化它的方式: CLLocationCoordinate2D iosCoords = new CLLocationCoordinate2D(38.00000000000000, -9.00000000000000); //This inits has (0,0) //Not

我正在尝试在我拥有的iOS自定义渲染中初始化一个类,在构造函数中,我可以传递纬度经度(double,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进行托管,下面是最后一段代码的屏幕截图:

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


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

我发现OnElementPropertyChanged几乎同时被同一个属性调用了两次,而且似乎在iOS中,即使属性以默认值开头,它总是首先传递到PropertyChanged,我只是需要防止在同一事件中多次呼叫,它解决了我的问题,我希望有人能提供比这更好的anwser,我只是尝试了一下,它对我很好。你能做系统诊断调试写线(iosCoords);看看它印的是什么?这看起来像是一个调试器问题,特别是当您使用VS for Windows时。@AndresCastro我想我找到了问题和解决方案,这段代码在OnElementPropertyChanged中,当我的属性更改时,它初始化了这个类,奇怪的是OnElementPropertyChanged被触发了两次,在android上它只触发一次,但在iOS(属性是bool)上,即使属性新值与旧值相同,它也会触发,所以我只是检查了属性为true的时间,并且类现在已正确初始化。如果你能澄清为什么会发生这种情况,为什么(即使它同时被调用了两次),它也没有初始化我还没有发布解决方案,因为我不知道为什么会发生这种情况,即使我找到了解决方案