iOS8 下定位 (CLLocationManager) 的改變

2014/09/21
~ 阿亮 ~

今天 iOS8 下測試下一班高鐵v1.8.1 、下一班火車v1.2.1 ,發現定位的寫法也不一樣了…. >”< 舊的 CLLocationManager 寫法,在新安裝的 App 會出現定位不會被詢問的情形。

0921_002 

如上圖所示,原本 Xcode5.1.1 的定位,若沒有變更程式碼,用 Xcode6 去編繹,安裝後的 App 會發現在「隱私權」>「定位服務」下的應用程式呈現沒有設定(如圖 1.),新裝的 App 也不會因為 CLLocationManager startUpdatingLocation 詢問定位的權限了

在 iOS8 下,它改由 requestWhenInUseAuthorization 來詢問權限

if (nil == locationManager)
{
     locationManager = [[CLLocationManager alloc] init];
}
    
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    [locationManager requestWhenInUseAuthorization];

另外,要在 info.plist 設定詢問權限時的字串 NSLocationWhenInUseUsageDescription

0921_001

這樣在詢問的對話框就會出現上面設定的字串了

0921_003

上面定位有問題的情形倒是在以下情形是不會發生的

  1. 原本 iOS7 就安裝的App,升級到  iOS8,因為原本定位設定儲存了,不會有問題
  2. 在 iOS8 下,安裝 Xcode5.1.1 編繹出來的 App


3 Responses to “iOS8 下定位 (CLLocationManager) 的改變”

  • Alston 說:

    Thanks for sharing!

  • 阿叶 說:

    谢谢博主,以前都用iOS7测的,换了8之后也没试过定位,今天一用 !!昏頭!!
    问题解决了,太好了 !!放炮!!

  • 微尘 說:

    谢谢博主,解决大问题了。。。。真心被折腾了三四天了,原来答案在这里 !!爽!!
    博主请收下我的膝盖~~~ Orz

站內搜尋



本站其他服務

本站其他軟體



  • 下一班火車 (nextRail)

    這個 app 只要開啟後,就根據定位幫你過濾出最近火車站的時刻表,不用再按任何按鈕了,方便您在很快時間內確定要坐的哪一班火車


  • 標案快訊

    讓你可以輕鬆追蹤含有您想要關注關鍵詞的任何採購標案,只要有最新的資訊,「標案快訊」即會推播通知給你.


  • 藝文快訊

    讓你可以輕鬆追蹤含有您想要關注關鍵詞的任何藝文活動訊息,只要有最新的資訊,「藝文快訊」即會推播通知給你.


  • 下一班公車(nextBus)

    這個 app 只要開啟後,就根據定位幫你過濾出附近站牌的時刻表,以及提供相關公車預計到站的時間,方便您在很快時間內確定要坐的哪一班公車


  • 照片去背(PhotoEraser)

    一款方便移除背景的工具,產生透明背景圖可以存回原本相簿,也可分享到其他 App 使用.


  • 條碼掃描器(QRCode)

    支援 QRCode and Barcodes、可連續快速掃描、自動對焦、可打開手電筒供掃描時使用