iOS中CoreLocation定位的代理方法不執行的解決辦法。

iOS中CoreLocation的代理方法不執行存在多種可能的問題。

第一種:

網上其它關於不執行的文章多是從編程角度出發去解決iOS 8以後定位服務的編寫方法的改變,主要是分爲三個步驟:

1)在Info.plist文件中添加兩行字段:


2)在初始化locationManager的地方首先確定定位服務是否開啓,然後調用requestAlwaysAuthorization方法。


3)在代理方法didChangeAuthorizationStatus方法中確定狀態是否是kCLAuthorizationStatusNotDetermined,如果是則調用requestAlwaysAuthorization方法。


以上三步就能解決從iOS 7系統下定位服務不可用的問題。

然而,很多時候這種方法並沒有卵用。

第二種:

在我編寫完上述代碼後依然解決不了問題,代理方法還是未執行。我在代理方法didFailedWithError中打印了error,發現提示錯誤爲@"the operation could not be completed."錯誤原文大體就是這樣,如果有幾個單詞的不同請忽略這些細節。這個問題一般出現在模擬器中,手機上應該是不會出現這個問題。因此這個問題的解決方法就是重置模擬器。

在模擬器的菜單中選擇Reset content and Settings,然後再執行代碼即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章