Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在每15分钟内找到当前位置_Objective C_Ios4_Ios5_Ios Simulator_Ip - Fatal编程技术网

Objective c 如何在每15分钟内找到当前位置

Objective c 如何在每15分钟内找到当前位置,objective-c,ios4,ios5,ios-simulator,ip,Objective C,Ios4,Ios5,Ios Simulator,Ip,我开始用ios-5开发一个项目, 我想每隔15分钟找到当前位置 这是我的密码 - (void)applicationDidEnterBackground:(UIApplication *)application { locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocati

我开始用ios-5开发一个项目, 我想每隔15分钟找到当前位置

这是我的密码

- (void)applicationDidEnterBackground:(UIApplication *)application {

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self; 
    locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    NSDate *newLocationTimestamp = newLocation.timestamp;
    NSDate *lastLocationUpdateTiemstamp;
    int locationUpdateInterval = 60; //1min

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    if (userDefaults) {
        lastLocationUpdateTiemstamp = [userDefaults objectForKey:@"myevent"];
     if (!([newLocationTimestamp timeIntervalSinceDate:lastLocationUpdateTiemstamp] < locationUpdateInterval)) {
            NSLog(@"New Location: %@", newLocation);

            //[self locationManager:locationManager didUpdateToLocation:newLocation fromLocation:oldLocation];
            [userDefaults setObject:newLocationTimestamp forKey:@"myevent"];
        }
    }
}
-(无效)应用程序标识符背景:(UIApplication*)应用程序{
locationManager=[[CLLocationManager alloc]init];
locationManager.delegate=self;
locationManager.desiredAccuracy=KCallocationAccuracyNearesttenmeters;
[locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager*)manager didUpdateToLocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation
{
NSDate*newLocationTimestamp=newLocation.timestamp;
NSDate*LastLocationUpdateItemStamp;
int locationUpdateInterval=60;//1分钟
NSUserDefaults*userDefaults=[NSUserDefaults standardUserDefaults];
如果(用户默认值){
LastLocationUpdateItemStamp=[userDefaults objectForKey:@“myevent”];
如果(!([newLocationTimestamp timeIntervalSinceDate:LastLocationUpdateTimeStamp]
我遇到的问题是,这段代码是在后台工作的,但我每5分钟得到一个当前位置(这里是newLocation),而不是在1分钟之后,甚至我设置了locationUpdateInterval=60秒

我什么都试过了,但没有得到确切的答案。
提前谢谢

我听到的轶事证据是,为了节省电池寿命,CoreLocation更新只会定期为后台应用程序启动

关于这个主题,我在这里看到了一些相关的问题

另外,请看一看,特别是“启动重大更改位置服务”部分