ios - 返回后台时 NSUserDefaults 不同的值

标签 ios objective-c nsuserdefaults nsusernotification

当我将应用程序置于后台模式时,我在 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

我要恢复值(value):

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

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

日志:开始日期:1418731716608.000000

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

最佳答案

NSTimeInterval 双击它,你会得到

typedef double NSTimeInterval;

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

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

获取数据

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

最好保存 NSDate 对象 :)

关于ios - 返回后台时 NSUserDefaults 不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504503/

相关文章:

arrays - Swift:将可选数组存储到 NSUserDefaults?

ios - 删除存储在 nsuserdefault 中的 nsdata

objective-c - UISlider 减少 UIImage 的 alpha

ios - WkWebView 不允许在加载后缩放某些网站

objective-c - 在核心数据中存储日期

ios - 当焦点从 UITextField 和 UIWebView 改变时,如何避免键盘隐藏和显示?

xcode - IB 中的绑定(bind)和共享 NSUserDefaults 无法保存数据时出现问题

ios - react-native-maps:必须将 AirGoogleMaps 目录添加到您的 xCode 项目以支持 iOS 上的 GoogleMaps

objective-c - 自定义垂直 UISlider 的问题

C:当 A >1 时,语句 'return A || 1' 会返回什么?