Получение времени протекло в Objective C

Предварительная обработка 'c' - это процесс замены макросов текстом из их определений. некоторые операции, такие как ##, позволяют добавлять свой аргумент в виде текста в определения. Итак, все сделано еще до начала компиляции.

В результате в вашем случае FUN(fun,i) будет подставлено в виде текста и формы funi. Единственный ограниченный способ создания имен функций, которые вы хотите, - это использовать реальные текстовые значения или другие макросы. Вот 2 примера, которые будут работать с предварительной обработкой:

FUN(fun, 0)(1);

или

#define I 0
FUN(fun, I)(1);

В последнем случае I является самим макросом, поэтому он также работает. (всегда полезно называть имя макроса заглавными буквами).

150
задан Pang 31 July 2018 в 00:39
поделиться

4 ответа

NSDate *start = [NSDate date];
// do stuff...
NSTimeInterval timeInterval = [start timeIntervalSinceNow];

timeInterval - это разница между началом и временем в секундах с точностью до миллисекунды.

262
ответ дан Can Berk Güder 23 November 2019 в 22:18
поделиться

Для измерения времени прохождения (например, GetTickCount) также взгляните на mach_absolute_time и вопросы и ответы Apple: http : //developer.apple.com/qa/qa2004/qa1398.html

.
8
ответ дан Jason Coco 23 November 2019 в 22:18
поделиться

использовать функцию timeIntervalSince1970 класса NSDate, как показано ниже:

double start = [startDate timeIntervalSince1970];
double end = [endDate timeIntervalSince1970];
double difference = end - start;

в основном это то, что я использую для сравнения разница в секундах между двумя разными датами. также проверьте эту ссылку здесь

4
ответ дан Raj 23 November 2019 в 22:18
поделиться

Используйте метод timeIntervalSinceDate

NSTimeInterval secondsElapsed = [secondDate timeIntervalSinceDate:firstDate];

NSTimeInterval - это просто double , определите в NSDate следующим образом:

typedef double NSTimeInterval;
23
ответ дан 23 November 2019 в 22:18
поделиться