iOS 8中CLLocationManager及MKMapView showUserLocation失败的解决办法

用XCode 6编译的原来XCode 5.1.1写的程序时,发现原来写的CLLocationManager定位的代码以及MKmapView的showUserLocation失效。查了一下,XCode 6选用iOS 8 SDK编译app的话,需要调用CLLocationManage 的requestAlwaysAuthorization 方法。

操作步骤如下:

1. 在AppDelegate的didFinishLaunchingWithOptions:方法中 [self.window makeKeyAndVisible]; 之后添加以下代码

    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    // 判斷是否 iOS 8
    if([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
        [locationManager requestAlwaysAuthorization]; // 永久授权
        [locationManager requestWhenInUseAuthorization]; //使用中授权
    }
    [locationManager startUpdatingLocation];

2. 在 info.plist里加入:

NSLocationWhenInUseDescription,允许在前台获取GPS的描述

NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述

完成。

参考:

http://www.cnblogs.com/tx8899/p/3989087.html

http://blog.uniba.jp/post/91830563468/ios-8

http://www.cocoachina.com/bbs/read.php?tid-217107.html

http://www.cocoachina.com/ask/questions/show/87714

http://9to5mac.com/2014/06/04/apple-improves-location-services-in-ios-8-with-when-in-use-mode-visit-monitoring/

http://derjohng.doitwell.tw/6197/%E9%9B%BB%E8%85%A6%E9%A1%9E%E5%88%A5/%E8%BB%9F%E9%AB%94%E7%AD%86%E8%A8%98/ios8-%E4%B8%8B%E5%AE%9A%E4%BD%8D-cllocationmanager-%E7%9A%84%E6%94%B9%E8%AE%8A/

http://www.cocoachina.com/ask/questions/show/113705/CLLocationManager%E8%8E%B7%E5%8F%96%E5%9C%B0%E5%9D%80%E5%81%8F%E5%B7%AE

时间: 2024-10-10 14:08:11

iOS 8中CLLocationManager及MKMapView showUserLocation失败的解决办法的相关文章

[转]iOS Safari 中click点击事件失效的解决办法

iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法 解决办法有 4 种可供选择: ?将 click 事件直接绑定到目标?元素(??即 .target)上 将目标?元素换成 

iOS Safari 中click点击事件失效的解决办法

问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法 解决办法有 4 种可供选择: ?将 click 事件直接绑定到目标?元素(??即 .target)上 将目标?元素换成 <a> 或者 button 等可点击的?元素 ?将 cl

iOS 7.1下itms-services在线安装失败的解决方法

前段时间,接到客户的求助,主要是关于无法通过safari在线安装企业级应用的问题.经过一系列测试都没有发现相同现象,最后发现客户使用了还原的功能,把iPad的iOS升级到了7.1.网上搜索了一下,发现从iOS7.1开始,之前使用itms-services://URL方式在线安装ipa文件的方法都失效了,主要表现为在点击安装的时候,会报错为:"无法安装应用程序,因xxx.com的证书无效". 主要原因是苹果公司在iOS 7.1中修改了manifest.plist文件的访问协议,把原来的h

数据库无法访问,用户 NT AUTHORITY/SYSTEM或NT AUTHORITY\NETWORK SERVICE登录失败的解决办法

问题:win7中的在IIS 7.0中,在 Default Web Site 目录下挂一虚拟目录. 在相应的应用程序池 DefaultAppPool 设置标识设置成NetworkService. 但是打开页面后,无法打开登录所请求的数据库,用户登录NT AUTHORITY\NETWORK SERVICE失败. 解决办法: 1.打开sqlserver Management studio,在安全性-登录名 下新建一个登记名NETWORK SERVICE ,设置默认数据库为要访问的数据库. 2.然后选

iMac 更新XCode 5.0.1 到 5.1.1 失败,解决办法

原因: 因为, 我的 小IPHONE4,在7.0.4版本 超级卡, 昨晚升级到7.1.1 . 今天发现,iMac上的XCODE, 不能识别我的手机,提示说XCODE的版本低,让升级. 之后,XCODE升级过程中,出现问题! 解决办法,如下: 在Finder中,我的电脑(小房子图标) -  资源库 - Developer - XCode   .   一般安装XCode都会安装到这个目录下,      选中XCODE, CMD+DEL 删掉, (或不放心的话, 可以剪切到某个别的路径下),   再尝

NetBeans启动Tomcat报“&#39;127.0.0.1&#39; 不是内部或外部命令”启动失败的解决办法

http://blog.sina.com.cn/s/blog_709548200102vgy4.html ———————————————————————————————————————————————————————————————— 问题描述: 新安装的NetBeans8.0.2,安装过程中还一体化安装了内含的Tomcat8.0.15,打开NetBeans运行web工程失败,控制台输出错误信息如下: 启动 Tomcat 失败. *****\build-impl.xml:1164: 部署错误:

Xamarin中VS无法连接Mac系统的解决办法

Xamarin中VS无法连接Mac系统的解决办法 按照以下步骤排查:(1)确认Mac系统中安装Xamarin.iOS开发必备的组件,如Mono.Xamarin.iOS.(2)将Windows和Mac下的Xamarin都升级到最新版.(3)在Mac下开启远程登录功能.(4)在Windows下,使用Putty验证Mac的帐号和密码是否有效.

Android Studio导入Fresco Build失败的解决办法

Android Studio导入Fresco Build失败的解决办法 导入facebook 的 Fresco后,如果发现编译的过程中出现 Error:Execution failed for task ':imagepipeline:ndk_build_bitmaps'. A problem occurred starting process 'command 'ndk-build" 大家可以在 imagepipeline 子项目里面的 gradle.properties 文件中得最后添加 n

c++中两个头文件定义同名类的解决办法

今天考虑了一个问题,如果两个头文件比如time.h times.h里面都定义了一个time的类,要怎么解决?vs编译器只对cpp文件进行编译,在编译阶段,这两个头文件的实现文件都不会出错,如果不在主函数中用到time这个类,程序也不会有问题.但是如果用到,那就是disaster!!!,如果你不得不在两个头文件中定义同名类,下面是我自己思考出来的最简单的解决方式--->>用不同的作用域包含 #ifndef TIME_H #define TIME_H namespace time1 { class