*
означает ноль или больше, а +
означает один или более. Поэтому разница в том, что пустая строка будет соответствовать второму выражению, но не первой.
Посмотрите на mach_absolute_time () в заголовке mach / mach_time.h.
Не используйте NSDate. NSDate даже не гарантирует, что время от времени не вернется назад, когда ntp делает свое дело.
(У устройств может быть дрейф часов. Если устройство iOS дрейфует быстро на несколько секунд, то, когда NTP исправляет этот дрейф, вы увидите, что часы внезапно уходят на несколько секунд назад. Очень плохо для использования времени. Mach_time использует счетчик, который никогда не исправляется NTP, поэтому не может вернуться назад, поэтому намного лучше для определения времени.)
Используйте NSTimeInterval startTime = [NSDate timeIntervalSinceReferenceDate]
, чтобы получить время начала, а затем NSLog (@"Операция заняла %f секунд", [NSDate timeIntervalSinceReferenceDate ] - startTime);
в конце.