Интервал измерения времени с тех пор - PullRequest
3 голосов
/ 27 мая 2011

кто-нибудь знает или может предоставить пример кода, относящегося к методу "timeIntervalSinceNow" ...

Мне нужно что-то вроде ... time2 (когда приложение входит в передний план) - time1 (когда приложение входит в фон) = time3 (разница во времени) ... это так, чтобы я мог использовать это число (pref в секундах) для посчитайте время, которое я потерял, пока приложение находилось в фоновом режиме !!

Я пытаюсь создать объекты даты, получить объект и отобразить / использовать в метке ....

Ответы [ 3 ]

4 голосов
/ 27 мая 2011

Вы можете рассчитать разницу между двумя датами с помощью метода timeIntervalSinceDate::

//When app enters background:
self.backgroundDate = [NSDate date]; //this should be a property 
//...
//When the app comes back to the foreground:
NSTimeInterval timeSpentInBackground = [[NSDate date] timeIntervalSinceDate:self.backgroundDate];

NSTimeInterval - это просто typedef для double, измеряется в секундах. [NSDate date] создает экземпляр объекта NSDate с текущей датой и временем.

4 голосов
/ 29 июля 2012

На самом деле, чтобы ответить на ваш оригинальный вопрос, myles, вы можете использовать timeIntervalSinceNow.В приведенном ниже утверждении inputDate было инициализировано как NSDate и установлено на некоторую дату (вы можете просто попробовать [NSDate *inputDate = [NSDate date];, чтобы установить дату на текущую дату и время.

NSTimeInterval timeToAlert =[inputDate timeIntervalSinceNow];

Следующая строка - это способ поместить NSTimeInterval в строку.

NSMutableString *timeinterval = [NSMutableString string];
[timeinterval appendFormat:@"%f",timeToAlert];

Наконец, класс делегата приложения, как правило, предназначен для написания кода для обработки входящих и исходящих данных. Удачи!

4 голосов
/ 27 мая 2011

timeIntervalSinceNow сообщает вам смещение NSDate от текущего времени.Вы хотите timeIntervalSinceDate::

NSDate *appEnteredForeground = ...;
NSDate *appEnteredBackground = ...;

NSTimeInterval difference = [appEnteredBackground timeIntervalSinceDate: appEnteredForeground];
...