2009-09-03 13 views
27

Ho bisogno del nome della classe che possiede un metodo, come NSString. Esempio: esiste un metodo -fooBar all'interno di SomeClass e il metodo -fooBar esegue un codice. Questo codice deve stampare quale classe "lo possiede", voglio dire: a quale classe appartiene quel metodo. Quindi non riesco a digitare il nome della classe in un NSString perché ne ho bisogno a scopo di debug, determinando dinamicamente il nome della classe. Difficile da spiegare. Qualche idea?Come ottenere il nome di una classe di un metodo come NSString?

risposta

9
NSLog(@"%@",[self className]); 

Aggiornamento: mi dispiace, non mi sono reso conto che className non esisteva su iPhone. Come suggerito nel commento sopra; utilizzare ..

NSLog(@"%@", NSStringFromClass([self class])); 

.. invece.

60

Sul Mac, è possibile utilizzare:

NSString *className = [self className]; 

o

NSString *className = NSStringFromClass([self class]); 

Su iPhone, [self className] non esiste quindi dovrete usare:

NSString *className = NSStringFromClass([self class]); 
3

Prova:

[[self class] description] 
+0

Otterrete un po 'più di quanto desiderato:

Problemi correlati