iOS 运行时获取类的所有属性

转自iOS 运行时获取类的所有属性

一、扩展NSArray分类

NSArray+Extension.h:

#import <Foundation/Foundation.h>

@interface NSArray (Extension)

+ (instancetype)getProperties:(Class)cls;

@end

NSArray+Extension.m:

#import "NSArray+Extension.h"
#import <objc/runtime.h>// 导入运行时文件
@implementation NSArray (Extension)

//返回当前类的所有属性
+ (instancetype)getProperties:(Class)cls{

    // 获取当前类的所有属性
    unsigned int count;// 记录属性个数
    objc_property_t *properties = class_copyPropertyList(cls, &count);
    // 遍历
    NSMutableArray *mArray = [NSMutableArray array];
    for (int i = 0; i < count; i++) {

        // An opaque type that represents an Objective-C declared property.
        // 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];
        [mArray addObject:name];
    }

    return mArray.copy;
}


@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 经常遇到这样情况,当你从后台拿到数据,字典类型,里面有很多字段,多的时候,可能会几十个,这个时候,字段转换到模型,...
    _浅墨_阅读 19,395评论 12 19
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,317评论 4 61
  • 听说林小帅到泉州银行
    tcliff阅读 1,339评论 0 0
  • 1. 前几天,跟一个同岁的朋友散步,聊着聊着就聊到了年龄。 她说:“真不敢想象,我们正走在奔四的路上。” 我说:“...
    不辣的妈阅读 4,398评论 0 1
  • Getting Real 是一本关于Web设计的书,是美国Fried 和 Jason写的一本关于他们设计的几个成功...
    小武子阅读 4,035评论 5 10