⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objc.h

📁 早期freebsd实现
💻 H
📖 第 1 页 / 共 2 页
字号:
  } ivar_list[1];                               /* Variable length                                                   structure. */} IvarList, *IvarList_t;/* * The compiler generates one (or more) of these structures for a class that * has methods defined in its specification.  * * The implementation of a class can be broken into separate pieces in a file * and categories can break them across modules. To handle this problem is a * singly linked list of methods.  */typedef struct objc_method Method;typedef Method* Method_t;typedef struct objc_method_list {  struct objc_method_list*  method_next;      /* This variable is used to link                                                 a method list to another.  It                                                 is a singly linked list. */  int             method_count;               /* Number of methods defined in                                                 this structure. */  struct objc_method {    SEL         method_name;                  /* This variable is the method's                                                 name.  It is a char*.                                                   The unique integer passed to                                                 objc_msgSend is a char* too.                                                  It is compared against                                                 method_name using strcmp. */    const char* method_types;                 /* Description of the method's                                                parameter list.  Useful for                                                debuggers. */    IMP         method_imp;                   /* Address of the method in the                                                 executable. */  } method_list[1];                           /* Variable length                                                 structure. */} MethodList, *MethodList_t;/* * The compiler generates one of these structures for each class.   * * This structure is the definition for meta classes. By definition a meta * class is the class's class.  Its most relevant contribution is that its * method list contain the class's factory methods.  * * This structure is generated by the compiler in the executable and used by * the run-time during normal messaging operations.  Therefore some members * change type. The compiler generates "char* const" and places a string in * the following member variables:  class_pointer and super_class.  */typedef struct objc_metaClass {       struct objc_metaClass*  class_pointer;      /* Pointer to Object meta class. */  struct objc_metaClass*  super_class;        /* Pointer to meta class's                                                super class. NULL for                                                 Object. */  const char*             name;               /* Name of the meta class. */  long                    version;            /* Unknown. */  long                    info;               /* Bit mask.  See class masks                                                 defined above. */  long                    instance_size;      /* Always 0 except for Object.                                                Should be ignored. */  IvarList_t              ivars;              /* Always NULL except for                                                 Object.  Should be ignored. */  MethodList_t            methods;            /* Linked List of factory methods                                                 for the class. */  struct record **        cache;              /* Pointer to factory method dispatch table. */} MetaClass, *MetaClass_t;/* * The compiler generates one of these structures for each class.   * * This structure is the definition for classes.  * * This structure is generated by the compiler in the executable and used by * the run-time during normal messaging operations.  Therefore some members * change type. The compiler generates "char* const" and places a string in * the following member variables:  super_class.  */typedef struct objc_class {       MetaClass_t         class_pointer;          /* Pointer to the class's                                                meta class. */  struct objc_class*  super_class;            /* Pointer to the super                                                 class. NULL for class                                                 Object. */  const char*         name;                   /* Name of the class. */  long                version;                /* Unknown. */  long                info;                   /* Bit mask.  See class masks                                                 defined above. */  long                instance_size;          /* Size in bytes of the class.                                                  The sum of the class definition                                                 and all super class                                                 definitions. */  IvarList_t          ivars;                  /* Pointer to a structure that                                                describes the instance                                                 variables in the class                                                definition.  NULL indicates                                                no instance variables.  Does                                                not include super class                                                variables. */  MethodList_t        methods;                /* Linked list of instance                                                methods defined for the                                                 class. */  struct record **    cache;                  /* Pointer to instance method dispatch table. */} Class, *Class_t;/* * The compiler generates one of these structures for each category.  A class * may have many categories and contain both instance and factory methods.   */typedef struct objc_category {  const char*   category_name;                /* Name of the category.  Name                                                contained in the () of the                                                category definition. */  const char*   class_name;                   /* Name of the class to which                                                the category belongs. */  MethodList_t  instance_methods;             /* Linked list of instance                                                methods defined in the                                                 category. NULL indicates no                                                instance methods defined. */  MethodList_t  class_methods;                /* Linked list of factory                                                 methods defined in the                                                category.  NULL indicates no                                                class methods defined. */} Category, *Category_t;/* * Structure used when a message is send to a class's super class.  The * compiler generates one of these structures and passes it to * objc_msgSuper.  */typedef struct objc_super {  id      receiver;                           /* Id of the object sending                                                the message. */  Class_t class;                              /* Object's super class. */} Super, *Super_t;/* * _alloc points to the function, called through class_createInstance, used * to allocate memory for new instances.  */extern id (*_alloc)(Class_t);/* * _dealloc points to the function, called through object_dispose, used to * free instances.  */extern id (*_dealloc)(id);/* * _realloc points to the function, called through object_realloc, used to * reallocate memory for an object  */extern id (*_realloc)(id, unsigned int);/* * _copy points to the function, called through object_copy, used to create * an exact copy of an object.  */extern  id (*_copy)(id);/* * _error points to the function that the run-time system calls in response * to an error.  By default, it prints formatted error messages to the * standard error stream and calls abort to produce a core file.  */extern void (*_error)(id object, const char *fmt, va_list ap);#ifdef __cplusplus}#endif#endif /* not __objc_INCLUDE_GNU */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -