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 框架而不是谷歌地图 API 获取任何给定地址的坐标?