57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
#define nil (id _Null_unspecified)0
#define YES true
#define NO false
typedef struct objc_class *Class;
typedef struct objc_object *id;
typedef const struct objc_selector *SEL;
#if !defined(__wii__) && !defined(__amigaos__)
typedef bool BOOL;
#endif
typedef id _Nullable (*IMP)(id _Nonnull, SEL _Nonnull, ...);
typedef void (*objc_uncaught_exception_handler_t)(id _Nullable);
typedef void (*objc_enumeration_mutation_handler_t)(id _Nonnull);
struct objc_class {
Class _Nonnull isa;
Class _Nullable superclass;
const char *_Nonnull name;
unsigned long version;
unsigned long info;
long instanceSize;
struct objc_ivar_list *_Nullable iVars;
struct objc_method_list *_Nullable methodList;
struct objc_dtable *_Nonnull DTable;
Class _Nullable *_Nullable subclassList;
void *_Nullable siblingClass;
struct objc_protocol_list *_Nullable protocols;
void *_Nullable GCObjectType;
unsigned long ABIVersion;
int32_t *_Nonnull *_Nullable iVarOffsets;
struct objc_property_list *_Nullable properties;
};
enum objc_class_info {
OBJC_CLASS_INFO_CLASS = 0x001,
OBJC_CLASS_INFO_METACLASS = 0x002,
OBJC_CLASS_INFO_NEW_ABI = 0x010,
|
>
|
|
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#define nil (id _Null_unspecified)0
#define YES true
#define NO false
typedef struct objc_class *Class;
typedef struct objc_object *id;
typedef const struct objc_selector *SEL;
typedef struct objc_ivar *Ivar;
#if !defined(__wii__) && !defined(__amigaos__)
typedef bool BOOL;
#endif
typedef id _Nullable (*IMP)(id _Nonnull, SEL _Nonnull, ...);
typedef void (*objc_uncaught_exception_handler_t)(id _Nullable);
typedef void (*objc_enumeration_mutation_handler_t)(id _Nonnull);
struct objc_class {
Class _Nonnull isa;
Class _Nullable superclass;
const char *_Nonnull name;
unsigned long version;
unsigned long info;
long instanceSize;
struct objc_ivar_list *_Nullable ivars;
struct objc_method_list *_Nullable methodList;
struct objc_dtable *_Nonnull DTable;
Class _Nullable *_Nullable subclassList;
void *_Nullable siblingClass;
struct objc_protocol_list *_Nullable protocols;
void *_Nullable GCObjectType;
unsigned long ABIVersion;
int32_t *_Nonnull *_Nullable ivarOffsets;
struct objc_property_list *_Nullable properties;
};
enum objc_class_info {
OBJC_CLASS_INFO_CLASS = 0x001,
OBJC_CLASS_INFO_METACLASS = 0x002,
OBJC_CLASS_INFO_NEW_ABI = 0x010,
|
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
const char *_Nonnull categoryName;
const char *_Nonnull className;
struct objc_method_list *_Nullable instanceMethods;
struct objc_method_list *_Nullable classMethods;
struct objc_protocol_list *_Nullable protocols;
};
struct objc_ivar {
const char *_Nonnull name;
const char *_Nonnull typeEncoding;
unsigned int offset;
};
struct objc_ivar_list {
unsigned int count;
struct objc_ivar iVars[1];
};
enum objc_property_attributes {
OBJC_PROPERTY_READONLY = 0x01,
OBJC_PROPERTY_GETTER = 0x02,
OBJC_PROPERTY_ASSIGN = 0x04,
OBJC_PROPERTY_READWRITE = 0x08,
OBJC_PROPERTY_RETAIN = 0x10,
OBJC_PROPERTY_COPY = 0x20,
|
<
<
<
<
<
<
<
<
<
<
<
|
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
const char *_Nonnull categoryName;
const char *_Nonnull className;
struct objc_method_list *_Nullable instanceMethods;
struct objc_method_list *_Nullable classMethods;
struct objc_protocol_list *_Nullable protocols;
};
enum objc_property_attributes {
OBJC_PROPERTY_READONLY = 0x01,
OBJC_PROPERTY_GETTER = 0x02,
OBJC_PROPERTY_ASSIGN = 0x04,
OBJC_PROPERTY_READWRITE = 0x08,
OBJC_PROPERTY_RETAIN = 0x10,
OBJC_PROPERTY_COPY = 0x20,
|
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
Class _Nonnull class_);
extern const char *_Nullable object_getClassName(id _Nullable object);
extern const char *_Nonnull protocol_getName(Protocol *_Nonnull protocol);
extern bool protocol_isEqual(Protocol *_Nonnull protocol1,
Protocol *_Nonnull protocol2);
extern bool protocol_conformsToProtocol(Protocol *_Nonnull protocol1,
Protocol *_Nonnull protocol2);
extern void objc_exit(void);
extern _Nullable objc_uncaught_exception_handler_t
objc_setUncaughtExceptionHandler(
objc_uncaught_exception_handler_t _Nullable handler);
extern void objc_setForwardHandler(IMP _Nullable forward,
IMP _Nullable stretForward);
extern void objc_setEnumerationMutationHandler(
|
>
>
>
>
>
|
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
Class _Nonnull class_);
extern const char *_Nullable object_getClassName(id _Nullable object);
extern const char *_Nonnull protocol_getName(Protocol *_Nonnull protocol);
extern bool protocol_isEqual(Protocol *_Nonnull protocol1,
Protocol *_Nonnull protocol2);
extern bool protocol_conformsToProtocol(Protocol *_Nonnull protocol1,
Protocol *_Nonnull protocol2);
extern Ivar _Nullable *_Nullable class_copyIvarList(Class _Nullable class_,
unsigned int *_Nullable outCount);
extern const char *_Nonnull ivar_getName(Ivar _Nonnull ivar);
extern const char *_Nonnull ivar_getTypeEncoding(Ivar _Nonnull ivar);
extern ptrdiff_t ivar_getOffset(Ivar _Nonnull ivar);
extern void objc_exit(void);
extern _Nullable objc_uncaught_exception_handler_t
objc_setUncaughtExceptionHandler(
objc_uncaught_exception_handler_t _Nullable handler);
extern void objc_setForwardHandler(IMP _Nullable forward,
IMP _Nullable stretForward);
extern void objc_setEnumerationMutationHandler(
|