(soy un principiante cacao y) Me pregunto por qué debemos hacer:entendimiento NSLog sintaxis
NSLog(@"this is the variable value: %d",variable);
y no algo como esto:
[NSLog outputThis:@"this is the variable value: %d" param:variable];
(soy un principiante cacao y) Me pregunto por qué debemos hacer:entendimiento NSLog sintaxis
NSLog(@"this is the variable value: %d",variable);
y no algo como esto:
[NSLog outputThis:@"this is the variable value: %d" param:variable];
Estoy de acuerdo, esto es bastante confuso cuando estás comenzando. La razón principal es que el método NSLog, como muchos otros en Core Foundation, es una API basada en C, en lugar de una API de Objective-C. Las funciones estilo C se ven así myFunction (myParameter1, myParameter2).
Todas las cosas de la GUI a las que probablemente esté acostumbrado [UIView presentModalViewController:] etc se basan en una API Objective-C, con los corchetes que ha visto para funciones (llamados selectores en Obj-C). El lenguaje Objective-C se encuentra en la parte superior de C, por lo que encontrará ambos estilos en la mayoría de las aplicaciones.
Apple lo decide todo, y nos gustará – onmyway133
Como yo lo entiendo, NSLog no es una función de Objective C, sino una función de C construida en la base de Cocoa. Por lo tanto, se ajusta a las funciones C básicas con argumentos variados.
NSLog
puede parece como una clase, pero no lo es.
NSLog
es una funciónFoundationKit
para imprimir instrucciones de depuración en la consola . Se define enNSObjCRuntime.h
:
void NSLog(NSString format, ...);
hay una buena cantidad de información aquí: http://cocoadev.com/wiki/NSLog
EDIT: Como @fyngyrz señaló, la página está muerto. Entonces here is a wayback-machine version of the page from 2012
No, no lo hay. La página se ha ido. – fyngyrz
@fyngyrz Gracias. Editado la respuesta. – Alladinian
Porque la segunda instrucción llama al método 'outputThis: param:' en el objeto 'NSLog'. 'NSLog' es solo una función en Cocoa framework. – Eimantas
sí, pero podría haber sido un método de clase para una clase NSLog, como [NSString stringWithString: @ "this is a string"]; ? – tahir
NSLog no "suena" como clase. NSLogger hubiera sido una mejor opción para un nombre de clase. Ahora es solo una acción. – Eimantas