处理需要每秒更新当前位置的应用程序。
我正在使用CoreLocation
框架。
我的代码就像
AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate>
{
}
@property (nonatomic, retain) CLLocationManager *locationManager;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
[locationManager startMonitoringSignificantLocationChanges];
[locationManager retain];
}
并实现它的委托方法
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
CLLocation *locB = [[CLLocation alloc] initWithLatitude:newLocation.coordinate.latitude longitude:newLocation.coordinate.longitude];
NSLog(@"New location is >>>>>> %@",locB);
}
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog(@">>>>>>>>>> error :%@", [error description]);
}
我的问题是,当我将此代码运行到模拟器中时,它工作正常并且每秒更新位置,但是当我将其运行到设备中时,它仅显示位置更新3或4次。
我需要在iphone 4和iphone中使用此代码。 iphone 5。
我没有找到任何解决方案。
实际上我需要计算距离或计数步数...因为我也可以加速计,但它没有提供完美的解决方案。
请帮助......
谢谢!
答案 0 :(得分:1)
我的印象是它不会一直更新位置,只会进行3-5次,以便提供一些可用于找到最佳选择的替代方案。尝试使用[locationManager startUpdatingLocation]重新开始位置生成和[locationManager stopUpdatingLocation];在你的拆解代码中停下来。
答案 1 :(得分:0)
您无法在后台运行该应用程序。您必须将其注册为在后台运行的应用程序。请参阅本链接中的实现长时间运行的后台任务
部分<强>更新强>
看到这个答案