我想做一個簡單的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測試的各種價值觀
附加信息: 應用被授權使用定位服務 應用前景
有一件事 - 將'kCLHeadingFilterNone'更改爲'kCLDistanceFilterNone'。 – rmaddy 2014-09-12 16:46:40
不幸的是它沒有工作。 – user2934017 2014-09-12 16:55:31
將''添加到您的班級。而且,視圖控制器中的所有代碼是?如果不是,請添加全部。 –
freshking
2014-09-12 17:34:27