iOS Type Encoding

Apple 源文档Objective-C Runtime Programming Guide

iOS中提供了一个叫做@encode的指令,可以将具体的类型表示成字符串编码。

  • @encode实际上是编译器指令其中的一种。
  • @encode能够返回一个Objective-C 类型编码(Objective-C Type Encodings)。
  • @encode是一种编译器内部表示的字符串,方便识别,类似于 ANSI C 的 typeof 操作。
  • 在Objective-C中,用@encode指令的方式来表示,可以方便Runtime内部利用类型编码帮助加快消息分发。。
下面是常用的@encode指令:
直接上代码:
char *buf1 = @encode(int);
char *buf2 = @encode(char);
char *buf3 = @encode(long double);
char *buf4 = @encode(void);
char *buf5 = @encode(Class);
char *buf6 = @encode(id);
char *buf7 = @encode(char *);
char *buf8 = @encode(NSArray *);
char *buf9 = @encode(SEL);
输出结果:
buf1    char *  "i" 
buf2    char *  "c" 
buf3    char *  "D" 
buf4    char *  "v" 
buf5    char *  "#" 
buf6    char *  "@" 
buf7    char *  "*" 
buf8    char *  "@" 
*buf9   char    ':'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容