基本上一半的時間委託方法CLLocationManager不工作的所有(iOS 8的時,Xcode 6)
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
根本沒有被調用的時候。但另一半的時間它完美的工作!我發現它通常是在關閉並退出它之後首次啓動Xcode時發生的,但之後或之後的一對運行似乎正常運行。我不是100%確定它是否只是一個Xcode問題或者什麼,我很快就會得到一個開發者許可證,所以我會看看它是否可以在實際設備上正常工作。
從viewDidAppear開始(在viewDidLoad中也嘗試過,沒有什麼區別),我運行一個方法來初始化我的LocationManager的東西:
locationManager = [[CLLocationManager alloc]init];
[locationManager setDelegate:self];
locationManager.distanceFilter = 20.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.pausesLocationUpdatesAutomatically = NO;
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
有時候這工作,有時沒有。我甚至做了個計時器,每隔幾秒鐘就重新運行一次,這是行不通的。
有什麼我應該做的嗎?這個問題有什麼答案嗎?
謝謝。
位置管理器實際上只是爲了在設備上工作。在模擬器中,你有沒有嘗試設置位置? – Milo 2014-09-28 04:39:26
你的意思是*一半的時間*?當操作系統有位置更新要傳遞時調用'didUpdateLocations'。有時它會,但其他時候(不太常見)它不會。 – Mike 2014-09-28 04:47:57
幾件事情,你有一個'NSLocationAlwaysUsageDescription'添加到你的應用程序info.plist文件?你有兩個在模擬器中設置了一個位置? (Debug-> Location) – TyloBedo 2014-09-28 05:18:35