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