计算通知的时间间隔

时间:2014-10-14 12:18:09

标签: objective-c nsdate

我有以下代码向用户发送推送通知,最初所有这些代码都采用当前日期,并从推送的当前日期增加5秒:

NSDate *now = [NSDate date];
NSDate *dateToFire = [now dateByAddingTimeInterval:5];

就我而言,我正在开发一个提醒系统,在这种情况下,我已经通过NSString中存储的用户数据预先定义了日期:

NSString *dateStore = @"2014-10-15 11:30:15 +0000"; //Date that the notification will be executed
NSDate *now = [NSDate date]; // has the value 2014-10-15 11:28:15 +0000

NSDate *dateToFire = [now dateByAddingTimeInterval:dateStore];

不幸的是,变量dateToFire无法处理此信息,并且当有两分钟的运行时,屏幕上会立即显示通知(按当前日期减去的数据等于2分钟)。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

#pragma mark - MinuteCalculate
-(void)MinuteCalculate{
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                             target:self
                                           selector:@selector(onTimer:)
                                           userInfo:nil
                                            repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}

-(void)onTimer:(NSTimer *)sender{
    int seconds+= 1.;
    NSLog(@"Second Count:- %d",seconds);
    if (seconds==60) {
        [timer invalidate];
        // When second count 60 then it's called.
    }
}