El tiempo de ejecución de Objective-C parece bastante robusto, por lo que me preguntaba si hay una forma de registrar el nombre de la función que llamó a la función actual (para depuración).Imprime el nombre de la función de llamada al registro de depuración
Mi situación es que un montón de cosas se asignan a una propiedad, y en lugar de establecer un punto de interrupción y examinar la pila de llamadas cada vez, me gustaría simplemente NSLog
el nombre de la función que establece la propiedad, junto con el nuevo valor
Entonces, ¿es posible acceder a la pila de llamadas en tiempo de ejecución?
Esto funciona muy bien si reemplaza 'sizeof (addr)' con 'sizeof (addr)/sizeof (void *)' (o solo 2). ¡Gracias! – Brian
Reparado. Ah, y Foundation realmente expone esto realmente simplemente a través de '- [NSThread callStackSymbols]', que devuelve una matriz. Puede usarlo como 'NSArray * syms = [[NSThread currentThread] callStackSymbols]; if ([syms count]> 1) NSLog (@ "caller:% @", [syms objectAtIndex: 1U]; ' –
último comentario:' callStackSymbols' es un método de clase. Debe usarlo como '[NSThread callStackSymbols]' – user102008