限时下载——原理很简单,但是竟然耗费了我很久的一个小功能

原理是,利用时间戳,判断是不是已经大于一天,费了我很久的时间,犯得错误第一个是,其实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"];
    }
}


你可能感兴趣的:(ios,时间戳,NSUserDefaults,NSTimer)