gpt4 book ai didi

crash - 使用NSUserDefaults导致timeIntervalSince1970崩溃

转载 作者:行者123 更新时间:2023-12-03 16:32:21 25 4
gpt4 key购买 nike

我正在尝试每4天显示一次UIALertView。但由于以下原因而崩溃:

NSInvalidArgumentException', reason: '-[__NSCFString timeIntervalSince1970]:

我尝试使用类似以下代码的不同方法: https://stackoverflow.com/a/4278151/1014564导致相同的崩溃。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *firstLaunchDate = [defaults objectForKey:@"timeStamp"];
NSDate *dateNow = [[NSDate alloc] init];

if (!firstLaunchDate){

NSString *nowTimestamp = [NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]];

[defaults setObject:nowTimestamp forKey:@"timeStamp"];
[defaults synchronize];


} else if (([dateNow timeIntervalSince1970] - [firstLaunchDate timeIntervalSince1970]) > 86400*4){

///UIAlertView Here..

}

赞赏的答案,将被接受。我知道这可能是一个简单的错误,我已经超过了昏昏欲睡的atm。

最佳答案

nowTimestamp = [NSString stringWithFormat:...];
[defaults setObject:nowTimestamp forKey:@"timeStamp"];

然后
NSDate *firstLaunchDate = [defaults objectForKey:@"timeStamp"];

因此,您基本上是在用户默认设置中设置 NSString,但是您希望获得 NSDate。由于 NSUserDefaults不是魔术,所以不会发生。如果要存储日期,请使用
[defaults setObject:[NSDate date] forKey:@"timeStamp"];

只有,您可以在从 timeIntervalSince1970返回的对象上使用 NSUserDefaults

关于crash - 使用NSUserDefaults导致timeIntervalSince1970崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com