当前位置:编程学习 > wap >>

超过指定时间后数据无效

有时候我们可能会从服务端获取一些信息,但是这些信息是有时间限制的,超过指定时间我们需要把这些数据设为无效或者直接删除。
下面是以 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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,