2010-05-03 4 views

Respuesta

7

sí, lo hacen:

NSLog(@"%s:%d", __FILE__, __LINE__); 

salida es por ejemplo:

/Path/to/file.m:42

1

tendría que volver atrás y mirar en la documentación de Objective C, pero mi conjetura sería "con toda seguridad" ya que estos son fundamentales para el lenguaje de programación C y Objective C es una extensión del mismo.

0

Tenga en cuenta que no puede convertir implícitamente la constante de cadena devuelta por ARCHIVO en un char *.

Esto arroja una advertencia de compilación. "Conversión obsoleta de constante de cadena a 'char *'".

Lo anterior será la siguiente:

NSLog(@"%s:%d", (char *) __FILE__, __LINE__); 
10

Así visualmente aún más fácil. Muestra solo el nombre del archivo sin una ruta. Es conveniente observar el terminal sin envoltura de texto.

Escritura:

NSLog(@"Log: %s %d", (strrchr(__FILE__, '/') ?: __FILE__ - 1) + 1, __LINE__); 

de salida es:

Log: file.m 340 
3

También puede utilizar simplemente @__FILE__