2009-11-12 64 views
2

我正在使用自定義類來更新用戶位置。當初始化類,創建由類iPhone - CLLocationManager初始化返回無

CLLocationManager *locManager = [[CLLocationManager alloc] init]; 
[self setLocationManager:locManager]; 

線返回零使用的CLLocationManager對象CLLocationManager * locManager = [[CLLocationManager的alloc] INIT];這是什麼原因造成的問題。

這段代碼在大多數時候都很好用。但是在一個特定的設備上(操作系統版本3.1),init返回一個零。任何想法爲什麼CLLocationManager會返回一個無初始化?

謝謝。

+0

+1。這裏同樣的問題。 – 2011-08-28 03:21:44

回答

2

當應用程序首次初始化位置服務時,操作系統會詢問用戶是否正確。如果他們說不,那麼在後續運行中有可能獲得零。您可能需要檢查此功能並正常降級功能。

+0

但是,在此設備上進行測試時,我總是選擇「確定」按鈕。在某個時間點,它崩潰了(同樣由於位置服務),並且從那時起,CLLocationManager的值每次都是零。用戶不應該得到提示嗎? – lostInTransit 2009-11-12 16:52:05

+0

我指出了位置服務可能返回零的一種情況(雖然技術上你應該得到一個locationManager:didFailWithError)。如果你不是那麼其他事情正在發生。可能要嘗試在「設置」中重置位置警告,並查看是否允許您從乾淨的版面開始。 – Ramin 2009-11-12 17:04:39

+0

我猜didFailWithError是CLLocationManagerDelegate的方法,它不會被解僱,除非CLLocationManager有一個值並且它的委託被設置了?這裏的CLLocationManager對象本身是零。添加代碼並突出顯示錯誤的行 – lostInTransit 2009-11-12 17:09:32