Last Update 2013/02/13
TOP - Objective-C - @encode
指定された型指定式をエンコードした文字列を生成します。
@encode( 式1 )
式1
エンコードする型を指定した式
・生成される型コード
c : char
i : int
s : short
l : long (64ビット・プログラムの32ビット量)
q : long 又は long long (実装環境によると思われる)
C : unsigned char
I : unsigned int
S : unsigned short
L : unsigned long
Q : unsigned long 又は unsigned long long (実装環境によると思われる)
f : float
d : double
v : void
* : 文字列(char *)
@ : object
# : class object (Class)
: : method selector (SEL)
[array type] : array
{name=type...} : 構造体
(name=type...) : union
bnum : numビットのビット・フィールド
^type : typeへのポインタ
? : 未知のタイプ
※ この表はXCodeデベロッパドキュメントのObjective-C Runtime Programming Guideを引用した内容となりますが、メモとしての利用を重視するため、一部特記事項などを省略してあります。
(例)
※ Xcodeで生成される「***_Prefix.pch」などのファイルの内容は記載しません。
#import <Foundation/Foundation.h>
struct test_struct {
char test_char;
int test_int;
short test_short;
long test_long;
unsigned char test_uchar;
unsigned int test_uint;
unsigned short test_ushort;
unsigned long test_ulong;
float test_float;
double test_double;
char *test_chars;
};
int main (void)
{
NSLog(@"char %s", @encode(char));
NSLog(@"int %s", @encode(int));
NSLog(@"short %s", @encode(short));
NSLog(@"long %s", @encode(long));
NSLog(@"unsigned char %s", @encode(unsigned char));
NSLog(@"unsigned int %s", @encode(unsigned int));
NSLog(@"unsigned short %s", @encode(unsigned short));
NSLog(@"unsigned long %s", @encode(unsigned long));
NSLog(@"float %s", @encode(float));
NSLog(@"double %s", @encode(double));
NSLog(@"char * %s", @encode(char *));
NSLog(@"void %s", @encode(void));
NSLog(@"NSObject %s", @encode(NSObject));
NSLog(@"struct %s", @encode(struct test_struct));
return 0;
}
実行結果
char c
int i
short s
long q
unsigned char C
unsigned int I
unsigned short S
unsigned long Q
float f
double d
char * *
void v
NSObject {NSObject=#}
struct {test_struct=cisqCISQfd*}