Objective-C Language NSLog vs printf


Ejemplo

NSLog(@"NSLog message");
printf("printf message\n");

Salida:

2016-07-16 08:58:04.681 test[46259:1244773] NSLog message
printf message

NSLog genera la fecha, la hora, el nombre del proceso, la ID del proceso y la ID del hilo, además del mensaje de registro. printf acaba de enviar el mensaje.

NSLog requiere una NSString y agrega automáticamente una nueva línea al final. printf requiere una cadena C y no agrega automáticamente una nueva línea.

NSLog envía la salida a stderr , printf envía la salida a la salida stdout .


Algunos format-specifiers en printf vs NSLog son diferentes. Por ejemplo, cuando se incluye una cadena anidada, se producen las siguientes diferencias:

NSLog(@"My string: %@", (NSString *)myString);
printf("My string: %s", [(NSString *)myString UTF8String]);