有時候我們可能會從服務端獲取一些信息,但是這些信息是有時間限制的,超過指定時間我們需要把這些數據設為無效或者直接刪除。
下面是以 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 來測試是否超過有效時間。