iOS 기본 데이터 구조
Objective - C 바 텀 데이터 구조
클래스 데이터 구조
Class (포인터)
typedef struct objc_class *Class;
/*
, . , . , . "char* const" "super_class"
*/
struct objc_class {
struct objc_class* class_pointer; /* . */
struct objc_class* super_class; /* . NSObject NULL.*/
const char* name; /* . */
long version; /* . */
unsigned long info; /* . . */
long instance_size; /* . */
#ifdef _WIN64
long pad;
#endif
struct objc_ivar_list* ivars; /* . NULL . . */
struct objc_method_list* methods; /* . */
struct sarray * dtable; /* . */
struct objc_class* subclass_list; /* */
struct objc_class* sibling_class;
struct objc_protocol_list *protocols; /* */
void* gc_object_type;
};
방법 (포인터)
typedef struct objc_method *Method;
/* .
, . , */
struct objc_method
{
SEL method_name; /* . `char*`, , SEL */
const char* method_types; /* . . .*/
IMP method_imp; /* . */
};
Ivar (포인터)
typedef struct objc_ivar *Ivar;
/* */
struct objc_ivar
{
const char* ivar_name; /* . */
const char* ivar_type; /* . . */
int ivar_offset; /* */
};
카 테 고리 (포인터)
typedef struct objc_category *Category;
/* . , */
struct objc_category
{
const char* category_name; /* . */
const char* class_name; /* */
struct objc_method_list *instance_methods; /* . NULL . */
struct objc_method_list *class_methods; /* . NULL . */
struct objc_protocol_list *protocols; /* */
};
objc_property_t
typedef struct objc_property *objc_property_t;
IMP
id (*IMP)(id, SEL, ...)
SEL
typedef struct objc_selector *SEL;
struct objc_selector
{
void *sel_id;
const char *sel_types;
};
objc_method_list
struct objc_method_list
{
struct objc_method_list* method_next; /* */
int method_count; /* */
struct objc_method method_list[1]; /* */
};
objc_cache
struct objc_cache
{
unsigned int mask;
unsigned int occupied;
Method buckets[1];
};
objc_protocol_list
struct objc_protocol_list
{
struct objc_protocol_list *next;
size_t count;
struct objc_protocol *list[1];
};
인 스 턴 스 데이터 구조
id
typedef struct objc_object *id;
objc_object
struct objc_object
{
/* . , .
Class isa;
};
objc_super
struct objc_super
{
id self; /* */
Class super_class; /* */
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.