CoreLocation iOS9 存储坐标

Posted

技术标签:

【中文标题】CoreLocation iOS9 存储坐标【英文标题】:CoreLocation iOS9 storing Coordinates 【发布时间】:2015-12-11 07:18:42 【问题描述】:

我最近问了这个问题,不知道在 ios 9 中对 CL 所做的更改。我正在尝试存储用户的当前位置,我已经更改了代码以反映 iOS 9 中的新委托方法,但 didUpdateLocations 仍然从未达到。

这是我原来问题的链接:Latitude & Longitude Not Retrieved

还有我更新的代码:

viewWillAppear

- (void)viewWillAppear:(BOOL)animated

manager = [[CLLocationManager alloc] init];
manager.delegate = self;

if ([manager respondsToSelector:@selector(requestWhenInUseAuthorization)]) 
    [manager requestWhenInUseAuthorization];

[manager startUpdatingLocation];

didUpdateLocations

- (void)locationManager:(CLLocationManager *)manager
 didUpdateLocations:(NSArray<CLLocation *> *)locations

NSLog(@"Location: %@", locations);
CLLocation *currentLocation = locations.lastObject;

if (currentLocation != nil) 
    float latitude = currentLocation.coordinate.latitude;

    float longitude = currentLocation.coordinate.longitude;


    NSLog(@"dLongitude : %f", longitude);
    NSLog(@"dLatitude : %f", latitude);


else NSLog(@"ERROR");
     


【问题讨论】:

【参考方案1】:

检查

authorizationStatus and startUpdatingLocation 

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

你也可以去设置->隐私->定位服务(打开)->选择你的应用并在使用时选择。

【讨论】:

我的定位服务已打开,但我没有看到我的应用列出 你在plist中添加了key吗? 在 Info.plist 中添加 NSLocationAlwaysUsageDescription 或 NSLocationWhenInUseUsageDescription 键,并在提示中显示一条消息。添加这些将解决您的问题。

以上是关于CoreLocation iOS9 存储坐标的主要内容,如果未能解决你的问题,请参考以下文章

CoreLocation 负值

如何从CoreLocation中的两个坐标获得对称坐标

CoreLocation 从坐标获取一定距离和方向的经纬度

如何使用 CoreLocation 框架而不是谷歌地图 API 获取任何给定地址的坐标?

需要一种从 iPhone CoreLocation 上的地址获取 GPS 坐标的方法

如何在 iPhone 模拟器中禁用 coreLocation?