超过指定时间后数据无效
有时候我们可能会从服务端获取一些信息,但是这些信息是有时间限制的,超过指定时间我们需要把这些数据设为无效或者直接删除。
下面是以 NSDate 来实现的
- (IBAction)ButtonMethod:(id)sender
{
// 模拟有效时间的开始
NSDate *dateNow=[NSDate date];
NSDateFormatter *dateFormmatter=[[NSDateFormatter alloc]init];
[dateFormmatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStr=[dateFormmatter stringFromDate:dateNow];
[dateStr writeToFile:[self timePath] atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
- (IBAction)ButtonMethod2:(id)sender
{
//模拟是否可以在有效时间内进行操作
NSDate *dateNow=[NSDate date];
NSDateFormatter *dateFormmatter=[[NSDateFormatter alloc]init];
[dateFormmatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStrNow=[dateFormmatter stringFromDate:dateNow];
NSString *dateStrPre=[NSString stringWithContentsOfFile:[self timePath] encoding:NSUTF8StringEncoding error:nil];
if ([self convertDateString:dateStrNow] -[self convertDateString:dateStrPre] >=60)
{
NSLog(@"more than 60 seconds");
//我们可以删除数据,或者提示用户
}
else
{
NSLog(@"less than 60 seconds");
//进行操作
}
}
-(long) convertDateString:(NSString *)aString
{
//格式 yyyy-MM-dd HH:mm:ss,当然你也可以改变它的格式
NSArray *dateArray=[aString componentsSeparatedByString:@" "];
NSString *dayStr=[dateArray objectAtIndex:1];
NSArray *dayArray=[dayStr componentsSeparatedByString:@":"];
long totalSeconds=0;
totalSeconds+=[[dayArray objectAtIndex:0] intValue] *60*60;
totalSeconds+=[[dayArray objectAtIndex:1] intValue] *60;
totalSeconds+=[[dayArray objectAtIndex:2] intValue] ;
return totalSeconds;
}
你也可以用一个NSTimer 来测试是否超过有效时间。
补充:移动开发 , IOS ,