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

站內搜尋



本站其他服務

本站其他軟體



  • 批踢踢快訊 (pttNews)

    身為鄉民的您,是不是常常覺得現在的批踢踢 (PTT) 閱讀器,明明您就只要看幾個板,都幫您分類好,但不是您要的?甚至您只想關注某個人(或某件事)的消息,卻散布在不同東西,找出來很辛苦? 這個 App 可以解決您這些問題,快來用吧!


  • 標案快訊

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


  • 下一班火車 (nextRail)

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


  • 藝文快訊

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


  • 當令蔬果花卉(AgriInfo)

    是不是常常在超市看到水果蔬菜的價格,總是不確定是當季蔬果?這個服務就是幫你很快判斷眼前的蔬果花卉的價格是否便宜。


  • 國道一路通(FreeWay)

    打開定位即實際地圖上繪製所在地中心附近的車況圖,可縮放地圖,不再是小小的縮小圖,快速了解高速公路的路況。