objective-c - 在 NSUserDefaults 中存储日期抛出异常

标签 objective-c ios nsdate nsuserdefaults

我正在用一小段代码比较 date1 和 date2,并收到崩溃通知。

我用这个在 NSUserDefaults 中得到 date1:​​

NSDate *date1 = [[NSUserDefaults standardUserDefaults] 
objectForKey:@"date1"];

NSDate *date2 = [[NSDate alloc] init]; 

if (fabs([date2 timeIntervalSinceDate:date1]) < 60)
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"60 seconds or less" message:@"Text" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil, nil];
    [alert show];
    return;
}

我像这样将 date1 存储在 NSUserDefaults 中:

NSDate *date1 = [[NSDate alloc] init];

[[NSUserDefaults standardUserDefaults] setObject:date1 forKey:@"date1"];

[[NSUserDefaults standardUserDefaults] synchronize];

应用程序崩溃,提示 -[__NSCFString timeIntervalSinceReferenceDate]:无法识别的选择器已发送至实例。有人有什么想法吗?

谢谢!

最佳答案

要存储日期,请使用:

NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

要得到它,请使用:

NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];

关于objective-c - 在 NSUserDefaults 中存储日期抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931186/

相关文章:

ios - NSDateFormatter "Month"3 个字母而不是完整的单词

ios - Swift 不符合协议(protocol)

objective-c - 如何与 Mac OS X 中的 Photoshop 应用程序交互

objective-c - 具有自定义高度的 NSTableView 部分横幅列

iphone - 有没有人有在 iPhone 应用程序中播放 ASF 流的解决方案?

ios - UITableView didSelect 委托(delegate)没有被调用?

ios - 完成 block 中的 UIView 动画以位移开始

ios - SQLITE奇怪的时间戳和IOS

objective-c - NSDateFormatter 从字符串返回错误的日期

ios - EXC_BAD_ACCESS 在 dispatch_async 中使用 "freed"self 时