Runtime之获取类名

获取类名,父类名以及判断对象是否是元类

//The name of the class, or the empty string if cls is Nil.
//返回class的名字,如果class是Nil则返回空值
class_getName
//The superclass of the class, or Nil if cls is a root class, or Nil if cls is Nil.
//返回一个类的父类。
class_getSuperclass
//YES if cls is a metaclass, NO if cls is a non-meta class, NO if cls is Nil.
//返回一个布尔值,表示一个类对象是否是一个元类。
class_isMetaClass

元类与类的差别

 NSString *str = [NSString new];   
 NSLog(@"class name:%s",class_getName(str.class));
 NSLog(@"class name:%s",class_getName(self.class));
 NSLog(@"super class name:%@",class_getSuperclass(self.class));   
 NSLog(@"class name:%@",class_isMetaClass(self.class)?@"yes":@"no");
 NSLog(@"class name:%@",class_isMetaClass(str.class)?@"yes":@"no");

输出:
2017-03-09 11:17:29.698020 Runtime[1414:528353] class name:__NSCFConstantString
2017-03-09 11:17:30.596969 Runtime[1414:528353] class name:ViewController
2017-03-09 11:17:33.326785 Runtime[1414:528353] super class name:UIViewController
2017-03-09 11:17:36.079774 Runtime[1414:528353] class name:no
2017-03-09 11:17:37.400009 Runtime[1414:528353] class name:no
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,249评论 18 399
  • 主材:牛里脊,切成细丝 配菜:红辣椒、仔姜 做法:1、将牛肉丝放入淀粉、料酒拌匀;2、热油热锅,加入花椒,牛肉下锅...
    糖果屋1968阅读 3,106评论 0 0
  • 北海有无情的遭遇了冷空气的降临,整个人蜷缩在被窝里度日如年,今早在半梦半醒、昏昏迷迷之际,老爸发来视频聊天...
    灰吖灰阅读 1,202评论 0 1
  • 职场就是一个江湖,在这个江湖你存活多久,那么直接取决你修炼内功的深浅 每一次,找工作,换工作,你是不是在第一时间,...
    魔都小北阅读 4,130评论 0 1
  • #私設影之和異色[黑化]# #大概是糖# #繁體字看不懂不要怪在下# #常色稱在下,人閣下。異色稱我[吾],人你#...
    影之_rose灵阅读 1,292评论 0 1

友情链接更多精彩内容