Objective-C在默认情况下是将类或协议的名字作为元数据名称(metadata name),即如果我们打印一个对象的class方法,输出就是对象所属类的类名,如下图所示。

如果我们想为类或协议指定一个字符串作为其元数据名称,而不是使用默认的,则可以使用编译属性objc_runtime_name,如下图代码所示,只需要在类或协议声明之前加上__attribute__((objc_runtime_name("identifier")))

参考

  1. Clang 5 documentation
  2. Clang Attributes 黑魔法小记