︙ | | | ︙ | |
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <stdint.h>
#ifndef __has_feature
# define __has_feature(x) 0
#endif
#if __has_feature(objc_arc)
# define OBJC_BRIDGE __bridge
#else
# define OBJC_BRIDGE
#endif
typedef struct objc_class *Class;
typedef struct objc_object *id;
typedef const struct objc_selector *SEL;
typedef signed char BOOL;
|
>
>
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include <stdint.h>
#ifndef __has_feature
# define __has_feature(x) 0
#endif
#if __has_feature(objc_arc)
# define OBJC_UNSAFE_UNRETAINED __unsafe_unretained
# define OBJC_BRIDGE __bridge
#else
# define OBJC_UNSAFE_UNRETAINED
# define OBJC_BRIDGE
#endif
typedef struct objc_class *Class;
typedef struct objc_object *id;
typedef const struct objc_selector *SEL;
typedef signed char BOOL;
|
︙ | | | ︙ | |
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
struct objc_selector {
uintptr_t uid;
const char *types;
};
struct objc_super {
id self;
Class cls;
};
struct objc_method {
struct objc_selector sel;
IMP imp;
};
|
|
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
struct objc_selector {
uintptr_t uid;
const char *types;
};
struct objc_super {
OBJC_UNSAFE_UNRETAINED id self;
Class cls;
};
struct objc_method {
struct objc_selector sel;
IMP imp;
};
|
︙ | | | ︙ | |
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
#else
} Protocol;
#endif
struct objc_protocol_list {
struct objc_protocol_list *next;
long count;
Protocol *list[1];
};
#define Nil (Class)0
#define nil (id)0
#define YES (BOOL)1
#define NO (BOOL)0
|
|
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
#else
} Protocol;
#endif
struct objc_protocol_list {
struct objc_protocol_list *next;
long count;
OBJC_UNSAFE_UNRETAINED Protocol *list[1];
};
#define Nil (Class)0
#define nil (id)0
#define YES (BOOL)1
#define NO (BOOL)0
|
︙ | | | ︙ | |
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
{
return class_getName(object_getClass(obj));
}
static inline BOOL
class_isMetaClass(Class cls_)
{
struct objc_class *cls = (struct objc_class*)cls_;
return (cls->info & OBJC_CLASS_INFO_METACLASS);
}
#undef OBJC_BRIDGE
#endif
|
|
>
|
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
{
return class_getName(object_getClass(obj));
}
static inline BOOL
class_isMetaClass(Class cls_)
{
struct objc_class *cls = (OBJC_BRIDGE struct objc_class*)cls_;
return (cls->info & OBJC_CLASS_INFO_METACLASS);
}
#undef OBJC_UNSAFE_UNRETAINED
#undef OBJC_BRIDGE
#endif
|