原理是,利用时间戳,判断是不是已经大于一天,费了我很久的时间,犯得错误第一个是,其实int已经可以接受时间戳的值,当然也看到了很多人用其他的基本数据类型接受。还有一个错误是忘了NSUserDefaults不能存assign的值。
//限时下载
if (![[NSUserDefaults standardUserDefaults]objectForKey:@"time"]) {
afterTime = [[NSDate date] timeIntervalSince1970];
NSNumber *beforeTime = [NSNumber numberWithInt:afterTime];
[[NSUserDefaults standardUserDefaults]setObject:beforeTime forKey:@"time"];
}else{
afterTime = [[[NSUserDefaults standardUserDefaults]objectForKey:@"time"] intValue];
}
[NSTimer scheduledTimerWithTimeInterval:60*10 target:self selector:@selector(chage) userInfo:nil repeats:YES];
//限时下载的方法
- (void)chage{
//判断是否大于一天
BOOL chage = ([[NSDate date] timeIntervalSince1970] - afterTime)>60*60*24;
if (chage) {
manager.time = 0;//限时下载次数清零,重新存入时间
NSNumber *beforeTime = [NSNumber numberWithInt:[[NSDate date] timeIntervalSince1970]];
afterTime = [[NSDate date] timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults]setObject:beforeTime forKey:@"time"];
}
}