Loose-Info.com

Last Update 2019/03/17


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*}