2010-03-15 21 views
1

我有一個應用程序檢查位置。它要求用戶使用位置,如果用戶在菜單上說不,那麼當我加載mapview時會出現問題。LocationManagerManager中的「不允許」會一直記錄錯誤

一旦我選擇mapView它再次要求用戶的位置。如果用戶再次表示我的控制檯不斷顯示錯誤/警告,並且我的位置管理器類的「didFailWithError」中出現NSLog。

如果用戶已經說不是,那麼是否有停止LocationManage:didFailWithErrors的方法?我不認爲蘋果會接受我的應用程序,如果日誌文件被填滿了我的的LocationManager

這裏是什麼得到在控制檯重複

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1 
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon 
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user 

回答

4

文檔上-didFailWithError:方法的例子說:

如果用戶拒絕您的應用程序的 使用位置服務,此 方法報告kCLErrorDenied錯誤。 一旦收到此類錯誤,您應該停止位置服務 。

所以收到此錯誤,你應該消息,你的位置經理之後停止更新位置:

[manager stopUpdatingLocation]; 

如果您使用的MKMapView我想設置其showsUserLocation屬性爲NO應該做的伎倆。

+0

確實....我的地圖視圖加載showUserLocation這兩種情況下(發現的位置被拒絕)。謝謝,當答案如此簡單時感到沮喪...再次感謝 – 2010-03-15 17:03:03

+0

即使stopUpdatingLocation被稱爲immediatley,我仍然總是收到兩個didFailWithError調用。 – AlexWien 2013-07-20 16:35:49

0

如果錯誤代碼爲kCLErrorDenied,則您有責任檢查錯誤代碼並停止更新位置。