获取类的私有属性

有些时候想要自定义类的一些格式,可是类的相关属性是私有的;这时候就要yongKVC来进行相应的操作;于是就要先知道相关类的属性列表

于是乎:

unsigned int count;// 记录属性个数

    objc_property_t *properties = class_copyPropertyList([UIAlertAction class], &count);

    // 遍历

    NSMutableArray *propertiesArray = [NSMutableArray array];

    for (int i = 0; i < count; i++) {

        // objc_property_t 属性类型

        objc_property_t property = properties[i];

        // 获取属性的名称 C语言字符串

        const char *cName = property_getName(property);

        // 转换为Objective C 字符串

        NSString *name = [NSString stringWithCString:cName encoding:NSUTF8StringEncoding];

        [propertiesArray addObject:name];

    }

    free(properties);

    NSLog(@"propertiesArray == %@",propertiesArray);


    //获取成员变量列表

    NSMutableArray *ivarArray = [NSMutableArray array];

    Ivar *ivarList = class_copyIvarList([UIAlertAction class], &count);

    for (int i = 0; i < count; i++) {

        Ivar myIvar = ivarList[i];

        const char *ivarName = ivar_getName(myIvar);

        [ivarArray addObject:[NSString stringWithUTF8String:ivarName]];

    }

    free(ivarList);

    NSLog(@"ivarArray == %@",ivarArray);

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

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,757评论 0 9
  • 上面一篇文章没有分析完yymodel 。 接着上篇接着分析 static void ModelSetValueFo...
    充满活力的早晨阅读 1,080评论 0 0
  • 我从前天开始就一直思考,昨晚到了三点。然后我做出了这个决定…我很明显感受到我的心底慢慢升起的渴望,我这两天一直循环...
    waterlily77阅读 175评论 0 0
  • 世间事,究竟有多少爱是恨的根源,又有多少恨纠缠着爱的牵绊。 在UNMEE任务区,共有7名来自中国的...
    雨人视界阅读 1,067评论 0 3
  • 文青的圈子里,鄙视链这个东西是让人又爱又恨的存在。不知道从什么时候开始,我已经很少做推荐这样的事情,尤其是一...
    范宁_阅读 892评论 4 3