2014-09-12 43 views
2

我想做一個簡單的IOS 6.0應用程序,每次更改位置時都會在屏幕上顯示緯度/經度。 ViewController文件非常簡單。didUpdateLocations只調用一次,然後停止射擊

我分配了一個CCLocationManager對象,設置它的變量並啓動它。 didUpdateLocations被調用一次或兩次,然後停止被觸發,即使iPhone被移動。如果我按主頁按鈕並重新打開應用程序,則屏幕上的數據會在再次停止之前更新一次或兩次。 在模擬中,它工作正常,但不是在真正的3GS iPhone上。

如果我取消註釋didUpdateLocations中的開始/停止並繼續停止並啓動該服務,它可以正常工作,但電池會以極高的費率排出。

此外,這是一個更大的項目的一部分,每次更改位置時都會調用didUpdateLocations 必須調用

ViewController.h

#import <CoreLocation/CoreLocation.h> 
@interface ViewController : UIViewController 
@property (nonatomic , strong) CLLocationManager *locationManager; 
@property (weak, nonatomic) IBOutlet UILabel *lbl; 
@end 

ViewConroller.m

#進口 「ViewController.h」 @interface的ViewController()

@end

@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _locationManager = [[CLLocationManager alloc] init]; _locationManager.delegate = self; _locationManager.distanceFilter = kCLHeadingFilterNone; // whenever we move _locationManager.desiredAccuracy = kCLLocationAccuracyBest; _locationManager.PausesLocationUpdatesAutomatically = NO; [_locationManager startUpdatingLocation]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *newLocation = [locations lastObject]; _lbl.text=[NSString stringWithFormat:@"%lf %lf",newLocation.coordinate.latitude, newLocation.coordinate.longitude]; //[_locationManager stopUpdatingLocation]; //[_locationManager startUpdatingLocation]; } @end

如果有什麼不對的建議,我會歡迎的,我已經失去了一個星期已經沒有解決它。

BTW,我已爲_locationManager變量,但沒有在任何行爲chnage測試的各種價值觀

附加信息: 應用被授權使用定位服務 應用前景

+1

有一件事 - 將'kCLHeadingFilterNone'更改爲'kCLDistanceFilterNone'。 – rmaddy 2014-09-12 16:46:40

+0

不幸的是它沒有工作。 – user2934017 2014-09-12 16:55:31

+0

將''添加到您的班級。而且,視圖控制器中的所有代碼是?如果不是,請添加全部。 – freshking 2014-09-12 17:34:27

回答

1

類似的一些技巧根據我在iOS上使用基於位置的編程的經驗提出問題。

  • 如果它在模擬器上工作,那麼它應該在實際設備上工作爲 以及。
  • 與模擬器不同,實際的設備只會在它從GPS接收到新的信息時進行更新。
  • 有很多情況下,您不會在設備上獲得足夠/所需的更新,例如當您在建築物(或覆蓋區域)時
  • 嘗試在開放空間測試應用程序(GPS在打開空間而不是房間/房子/大型建築物)。

PS。我不知道你有多少移動,但只是爲了讓你知道,移動幾步不能確保你會得到一個新的位置更新,嘗試在一些車輛(自行車/汽車/巴士)上使用它。

+0

上檢查它,感謝您的信息。看起來,GPS的工作原理並不像我想要的那麼頻繁。當然,在房間裏測試也沒有幫助。我決定繞過這個問題,在需要時通過停止/啓動位置更新。 – user2934017 2014-09-23 12:51:39

相關問題