runtime-API-ivar

1.获取成员变量/名称/类型/偏移量

  • class_getInstanceVariable
  • ivar_getName
  • ivar_getTypeEncoding
  • ivar_getOffset
    Ivar age_ivar = class_getInstanceVariable(NSPerson.class, "_age");
    const char *age_name = ivar_getName(age_ivar);
    const char *age_type = ivar_getTypeEncoding(age_ivar);
    
    /**
    @note For instance variables of type \c id or other object types, call \c object_getIvar
     and \c object_setIvar instead of using this offset to access the instance variable data directly.
    */
    ptrdiff_t age_offset = ivar_getOffset(age_ivar);
    NSLog(@"age_name:%s",age_name);
    NSLog(@"age_type:%s",age_type);
    NSLog(@"%td",age_offset);
    
    
     
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容