在Objective C中如何在运行时获取self的类名?

Rob*_*rtL 4 class objective-c objective-c-runtime

在Objective C中,'self'是某个类的实例化.我怎样才能找出它是什么类的实例?我想要一个包含该类名称的NSString.我知道isKindOfClass但是只测试它是否是一个特定的类,我必须事先知道它的名字.如果我的应用程序(或50)中有20个类,我必须写出20个isKindOfClass语句来找出它是哪个类,并且我必须重写它们以在不同的应用程序中执行相同的测试.获得课程名称是否有更直接的方法?

另外,如何获取包含我在运行时所使用的方法名称的NSString?

我想在运行时调试方法中使用这些函数.

这个问题涉及Objective C和iOS.

Lan*_*nce 11

对于班级:

NSStringFromClass([self class]);

对于方法(假设您使用的是您感兴趣的方法):

NSStringFromSelector(_cmd);

旁注,_cmd就像self在Objective C中的每个方法一样传递,并且是您所使用的方法的SEL(选择器).