2012-05-04 16 views
13

Por ejemplo, quiero rastrear las acciones enviadas a mi canPeformAction y son demasiado numerosas para mostrarlas en cada aparición con un "hover" en el depurador. Por lo tanto, quiero rastrear el registro y examinarlo después de mi ciclo de prueba.¿Hay alguna forma de imprimir la acción SEL?

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"%s: sender=%@", __FUNCTION__, sender, action); 
} 
+7

He encontrado mi respuesta: NSStringFromSelector (acción) – mobibob

Respuesta

34

¿Quieres

NSLog(@"%s: sender=%@, selector=%s", __FUNCTION__, sender,sel_getName(action)); 
+4

'sel_getName()' devuelve una cadena de C, no un 'NSString'. Use '% s' para el formato o (mejor)' NSStringFromSelector() '. –

+0

gracias, enfermo, edito mi archivo –

+1

Gracias Jacques y Dave: encontré el macro NSStringFromSelector después de hacer la pregunta. +1 y aceptarte. – mobibob

6

Uso NSStringFromSelector conseguir fácilmente un nombre imprimible del selector.

NSStringFromSelector(action)

NSString * NSStringFromSelector (SEL aSelector);

Devuelve una representación de cadena de un selector dado.

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender { 
    NSLog(@"Action: %@", NSStringFromSelector(action)); 
} 
Cuestiones relacionadas