Quizás sea mejor que use timeIntervalSince1970
, ya que es un método comúnmente utilizado en muchos idiomas. Devolverá el número de segundos transcurridos desde el 1 de enero de 1970.
Configure una variable de instancia para mantener la primera vez Intervalo e iníciela en el valor devuelto por [[NSDate date] timeIntervalSince1970]
, luego puede usarlo en su método de esta manera :
-(void) myMethod
{
NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970] - _initialTimeInterval;
NSLog(@"Seconds = %.2f", seconds);
}
una de las razones por las que su posible código actual puede bloquearse porque se [NSDate date]
devuelve un objeto autoreleased. Aunque la variable es estática, es probable que el grupo de liberación automática libere el objeto de fecha y provoque un bloqueo cuando intente acceder a él la próxima vez que se ejecute el método.
Puede evitar este bloqueo si crea una nueva fecha o conserva la que se devuelve desde date
. Sin embargo, asignar un objeto retenido/propiedad a una variable estática dará como resultado una pérdida de memoria y le sugiero que intente con mi solución.
De acuerdo con la documentación de Especificadores de formato de cadena,% f especifica un doble. "% f - Número de coma flotante de 64 bits (doble)" – Jasarien
Bastante justo. Su respuesta anterior se ve bien. :) –
Se bloquea sin ningún mensaje de error. ¿Qué DEBERÍA ser mi marcador de posición? – Patricia