0

当我将我的应用程序置于后台模式时,我保存了一个值NSUserDefaults,然后当应用程序再次激活时,该值是不同的。

我保存值:

- (void)appDidEnterBackground:(NSNotification *)notification {
    //Tiempo inicial de inactividad

    NSUserDefaults *dispositivo = [NSUserDefaults standardUserDefaults];
    NSTimeInterval timestamp = ([[NSDate date]  timeIntervalSince1970] * 1000);

    [dispositivo setFloat:timestamp forKey:@"StartBackground"];

    NSLog(@"Start background: %f", timestamp);

    [[NSUserDefaults standardUserDefaults] synchronize];
}

日志:启动后台:1418731653366.276123

我想恢复价值:

- (void)appDidBecomeActive:(NSNotification *)notification {

    NSUserDefaults *dispositivo = [NSUserDefaults standardUserDefaults];
    NSTimeInterval startDate = [dispositivo floatForKey:@"StartBackground"];
    NSLog(@"Start date: %f", startDate);
}

日志:开始日期:1418731716608.000000

这是我使用这个值的唯一地方。谢谢你的提前。

4

2 回答 2

2

NSTimeInterval 双击它,你会得到

typedef double NSTimeInterval;

所以你应该把值保存在 double 而不是 float

[dispositivo setDouble:timestamp forKey:@"StartBackground"];

并获取数据

NSTimeInterval startDate = [dispositivo doubleForKey:@"StartBackground"];

最好保存NSDate对象:)

于 2014-12-16T12:23:15.023 回答
0

没有任何问题,因为您使用的是 [NSDate date]...它将更新当前时间...

于 2014-12-16T12:21:45.063 回答