Как сохранить время, прошедшее в NSDate

Я хочу сохранить количество времени, прошедшего в NSDate. Поэтому, когда кнопка срабатывает, я хочу, чтобы таймер начал отсчет, я думаю, в секундах, а затем сохранил, сколько времени прошло, пока пользователь не нажмет следующую кнопку в NSDate, чтобы я мог вычесть это значение из другого NSDate, чтобы получить разницу с NSTimeInterval.

NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceNow:(slider.value * 60)];

        NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:[date timeIntervalSinceNow] target:self selector:@selector(nextFunction) userInfo:nil repeats:NO];

person 4GetFullOf    schedule 13.09.2013    source источник


Ответы (1)


NSDate имеет метод экземпляра timeIntervalSinceDate:, который возвращает NSTimeInterval.
При нажатии первой кнопки вы можете получить текущие данные с помощью [NSDate date] и сохранить их в свойстве с именем 'previousDate', а затем при нажатии второй кнопки: можно снова получить текущие данные и рассчитать прошедший временной интервал с помощью следующего кода:

- (void)firstButtonTapped {
    [self setPreviousDate:[NSDate date]];
}

- (void)secondButtonTapped {
    NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:[self previousDate]];
    // timeInterval now contains the amount of time that passed in seconds
}
person s1m0n    schedule 13.09.2013
comment
Могу ли я создать таймер с помощью NSDate? Не могли бы вы привести пример с кодом, который будет выполнять задачи, которые я упомянул. Спасибо - person 4GetFullOf; 13.09.2013
comment
Нет, вы устанавливаете переменную previousDate при первом нажатии кнопки; это свойство, которое вы храните локально в своем классе. Затем, когда нажимается вторая кнопка, вы создаете новую дату, как показано выше, и сравниваете их, и timeInterval возвращает количество прошедших секунд. - person IanStallings; 13.09.2013
comment
я не понимаю часть setPreviousDate.. я не могу сделать что-то вроде NSDate *date2 = timeIntervalSinceDate. Посмотрите на мой код выше. - person 4GetFullOf; 13.09.2013
comment
Я не создаю никаких классов - person 4GetFullOf; 13.09.2013