CLLocation 在我的 xamarin.ios 项目中为 Null

Posted

技术标签:

【中文标题】CLLocation 在我的 xamarin.ios 项目中为 Null【英文标题】:CLLocation is Null in my xamarin.ios project 【发布时间】:2015-07-13 13:25:46 【问题描述】:

我正在使用 CLLocationManager 在我的 xamarin.ios 项目中获取 GPS 坐标,直到昨天它工作正常,今天它通过在此行抛出此 null 异常而崩溃

double lat = locationManager.Location.Coordinate.Latitude;

以下是我的代码

    if (CLLocationManager.LocationServicesEnabled) 
                    double lat = locationManager.Location.Coordinate.Latitude;
                    double lon = locationManager.Location.Coordinate.Longitude;

                    CLLocationCoordinate2D mapCenter = new CLLocationCoordinate2D (lat, lon);

我已经删除了应用程序并重新安装,我已经重新启动了 xamarin 工作室但没有运气,任何人都可以帮助我

【问题讨论】:

我不是 xamarin 人,但在 Objective-C 中访问 nil 指针上的方法/属性是有效的 哪个特定对象为空?在开始检查位置值之前,您是否确认已开始接收位置更新? 实例化locationManager的代码在哪里? 【参考方案1】:

在您检查 CLLocationManager.LocationServicesEnabled 时,我还会检查:

CLLocationManager.Status == CLAuthorizationStatus.AuthorizedAlways

如果用户拒绝使用他们的位置。查看枚举 CLAuthorizationStatus 以了解您的应用可能使用的所有不同情况,例如AuthorizedWhenInUse。还要检查设置中的权限以查看您的应用是否被允许

【讨论】:

以上是关于CLLocation 在我的 xamarin.ios 项目中为 Null的主要内容,如果未能解决你的问题,请参考以下文章

未调用 CLLocation Manager didStartMonitoringForRegion 委托方法

CLLocation distanceFromLocation 返回错误答案,然后是正确答案

将核心数据行从一个表(实体)映射到 [CLLocation] 数组?

如何在整个应用程序中共享CLLocation?

如果 App 在后台时调用 startUpdatingLocation,CLLocation 管理器不会更新位置 [重复]

将 CLLocation 数据传递给 UITableView