首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSUserDefaults - Xamarin

NSUserDefaults - Xamarin
EN

Stack Overflow用户
提问于 2013-08-07 05:45:02
回答 4查看 5.9K关注 0票数 12

我只是在试着保存/恢复几个副本。我所看到的是,它在连接到调试器时可以工作,但在应用程序关闭15分钟后-重新启动应用程序,它会为两个doubles恢复"-180“。

这样看起来对吗?或者你觉得我在存"-180“?

这是与设备,而不是模拟器。我使用的是提供MKUserLocationEventArgsMap.DidUpdateUserLocation

不知何故,它给出了-180,-180表示位置。可能是Xamarin bug?

代码语言:javascript
复制
    private CLLocationCoordinate2D GetLastLocation()
    {
        var user = NSUserDefaults.StandardUserDefaults;

        double lat = user.DoubleForKey ("LastPositionLat");
        double lng = user.DoubleForKey ("LastPositionLng");

        var location = new CLLocationCoordinate2D (lat, lng);
        return location;
    }

    private void SaveLastLocation(CLLocationCoordinate2D coord)
    {
        var user = NSUserDefaults.StandardUserDefaults;
        user.SetDouble (coord.Latitude, "LastPositionLat");
        user.SetDouble (coord.Longitude, "LastPositionLng");
        user.Synchronize ();
    }
EN

回答 4

Stack Overflow用户

发布于 2015-03-07 00:59:10

这个问题很老了,但我突然想到了一个原因,我们看到了非常奇怪的行为,将NSUserDefaults.StandardUserdefaults存储在局部变量中,然后反复访问它。

Xamarin.iOS绑定中的一些东西(至少对于MonoTouch来说,即非统一的API)在那里被破坏了,很可能是GC问题,对象失去了它的原生对等体。我们的代码库中有这样的代码:

代码语言:javascript
复制
    // it appears that capturing an instance of NSUserDefaults.StandardUserdefaults in a variable does not work in every case
    // we have observed a voodoo bug when reading a written value from such an instance would fail (as I said, voodoo!)
    // thus, we directly access standard user defaults here always via the lambda
票数 4
EN

Stack Overflow用户

发布于 2015-09-07 20:30:29

也许您可以使用可以在github here上找到或通过nuget here安装的nuget package for handling (PCL)设置

我在过去的许多项目中都使用过这个库,并且从来没有给我提供过任何奇怪的值。请注意,如果您确实看到'-180‘再次出现,这意味着您的代码中的某个地方正在写入该值。

票数 2
EN

Stack Overflow用户

发布于 2013-08-07 07:21:42

-180看起来很可疑,因为它不是0或MAX double,而且看起来与坐标有关。也许在位置管理器有时间定位用户之前,您已经获取了用户的位置。您可能会检查位置管理器提供给您的读数是否不超过15秒。它通常会在获取最新位置锁的同时为您提供最后一个位置锁。-180可能是模拟器给你的‘最后已知位置’。

我不知道monotouch,但看起来你调用的方法是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18091075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档