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    ':'

你可能感兴趣的:(iOS Type Encoding)