iOS Runtime 과 메시지 메커니즘

1221 단어 Objective-C
struct objc_class *Class; // Class   objective-c class      
struct objc_object *id;     // id   objc_object       

struct objc_class {
    Class isa;
    Class super_class;
    const char *name;
    long version;
    long info;
    long instance_size;
    struct objc_ivar_list *ivars;
    struct objc_method_list **methodLists;
    struct objc_cache *cache;
    struct objc_protocol_list *protocols;

} OBJC2_UNAVAILABLE;
isa   objective-c Class     

 objc_class     object_class     isa

Class        struct objc_class   ,                    ,       ,               。

NSObject  class                   。

                               ,  isa。     ,                  。

typedef struct objc_selector 	*SEL;

       objc_selector   ,       /  。

IMP    :
         IMP     :
typedef id (*IMP)(id, SEL, ...);
    id    ,     id      objc_object       ,          isa,        NSObject         id    ,   NSObject           isa。
  ,          IMP     :IMP        ,                   id(self    ),         SEL (   ),           ,     id。     IMP             ,           。      C              。
NSObject    methodForSelector:                IMP    ,methodForSelector:                   ,               。

좋은 웹페이지 즐겨찾기