CLLocationManagerDelegate不调用didUpdateLocations(地图)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

这是因为xcode升级造成的定位权限设置问题。

升级xcode6以后打开以前xcode5工程,程序不能定位。工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位。

解决方法:

首先在 info.plist里加入对应的缺省字段 ,值设置为YES(前台定位写上边字段,前后台定位写下边字段)

NSLocationWhenInUseUsageDescription //允许在前台获取GPS的描述

NSLocationAlwaysUsageDescription //允许在前、后台获取GPS的描述

后方附图

先上代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

#import "ViewController.h"

#import <CoreLocation/CoreLocation.h>

@interfaceViewController ()<CLLocationManagerDelegate>

@PRoperty(nonatomic, strong) CLLocationManager *locationManager;

@end

@implementationViewController

// 1. 懒加载初始化:

- (CLLocationManager *)locationManager{

if(!_locationManager){

self.locationManager = [[CLLocationManager alloc] init];

self.locationManager.delegate =self;

}

return_locationManager;

}

- (void)viewDidLoad {

[superviewDidLoad];

// 2. 调用请求:

if([[[UIDevice currentDevice] systemVersion] doubleValue] > 8.0)

{

//设置定位权限 仅ios8有意义

[self.locationManager requestWhenInUseAuthorization];// 前台定位

// [locationManager requestAlwaysAuthorization];// 前后台同时定位

}

[self.locationManager startUpdatingLocation];

}

// 3.代理方法

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

NSLog(@"%ld",locations.count);

}

@end

图片:图.png

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航